Learn Velero (the open source tool for backing up, restoring, and migrating Kubernetes resources and persistent volumes) from the ground up to production-grade: prerequisite skills & environment setup, history, background & why you need it, core concepts & key architecture, installation & BSL configuration, your first backup, restore & selective restore, scheduling & retention, label selectors & annotations, cloud snapshot vs restic/kopia volume backup, pre/post backup hooks, restore workflow & namespace mapping, cross-cluster migration, disaster recovery plan, credential security & RBAC, backup encryption & object storage security, backup policies & compliance, troubleshooting & debugging, Velero 1.18 & the latest features, plugin ecosystem, CSI snapshot & cross-provider, performance & data management, roadmap & community, all the way to the alternative ecosystem & final reflection with a total of 23 episodes.
Before you touch a `velero backup create` command, you need to master kubectl and cluster access, understand Kubernetes resources like Deployment and PVC, and grasp S3-compatible object storage concepts. In this episode you prepare a cluster, install the velero CLI 1.18, provide a MinIO/S3 backend, and verify the environment is ready.

This episode reviews Velero's origins from Heptio to its status as a CNCF project, along with its design philosophy. You also understand why Velero is needed: API resource + volume backup, selective restore, cross-cluster migration, scheduling, and disaster recovery without vendor lock-in.

This episode dissects the Velero architecture: the velero server as a deployment in the cluster, the velero CLI as the client, and the roles of the BackupStorageLocation (BSL) and VolumeSnapshotLocation (VSL) CRDs. You also get to know all the core components, from the velero namespace and the Backup/Restore/Schedule CRDs to object store plugins and the node-agent.

This episode guides you through installing Velero 1.18 into a cluster, both via `velero install` and the vmware-tanzu/velero Helm chart. You also configure the BackupStorageLocation (object store) and the VolumeSnapshotLocation (cloud snapshot), including MinIO options with s3ForcePathStyle and insecure skip TLS.

This episode guides you through your first backup with `velero backup create`, reading backup details via `velero backup describe`, and understanding what a backup contains: resource manifests plus volume data. You also learn to control the backup scope with `--include-resources` and `--exclude-resources`.

A backup without restore is just data storage. This episode teaches full restore from a backup, restoring into a different namespace via `--namespace-mappings`, and selective restore with `--include-resources`, `--include-namespaces`, and `--selector`.

Manual backups aren't enough for production. This episode covers `velero schedule create` with cron expressions, setting `--ttl` for auto-expiry, the fundamental differences between a schedule and a manual backup, and retention strategies that match your RPO needs.

This episode covers granular backup control: selecting resources via label selector, marking resources that must always be included/excluded with the velero.io annotation, configuring `--snapshot-volumes`, and introducing pre and post hooks for backup.

This episode compares Velero's two volume backup mechanisms: cloud snapshots (block-level via EBS/GCP PD, fast, needs a VSL) and file-level backup via the node-agent with restic/kopia (portable, works with S3 without cloud snapshots, suitable for non-cloud volumes and NFS).

An inconsistent volume backup is a ticking time bomb. This episode covers pre/post backup hooks in Velero: running commands before and after a backup (e.g. pg_dump, DB flush), configuration via annotations, timeouts and on-error, and a PostgreSQL and stateful application case study so data is recovered intact.
