Kubernetes backup: protecting the four layers properly
Timo Wevelsiep•Updated: 23.07.2026Editorial note: Versions, commands and prices may change. Please verify critical steps independently before production use. This guide does not replace individual consulting.
Have backup and recovery set up dependably in your cluster? WZ-IT plans, builds and operates Kubernetes clusters including backup, restore tests and defined recovery objectives - on Proxmox, bare metal and European infrastructure. See Managed Kubernetes
"But we have snapshots" is the most common misconception about Kubernetes backup. A snapshot captures a point in time of a disk - but a cluster consists of several layers that must be protected separately. This guide shows the four layers of a complete backup, which tools cover which, and why in the end only the tested restore counts. As of July 2026.
Table of contents
- Why a snapshot is not a backup
- The four layers to protect separately
- Layer 1: etcd, the cluster state
- Layers 2 and 3: resources and volumes with Velero
- Layer 4: application-consistent database backups
- The tested restore is what counts
Why a snapshot is not a backup
A VM or volume snapshot is valuable, but it answers only one of several questions. It captures a point in time of the disks - but not automatically a consistent state of the control plane, the versioned definition of the cluster or a transactionally clean database. And it does not protect against the most common causes of loss: accidental deletion, a faulty deployment or ransomware are, with pure replication, even replicated along with the data.
A dependable backup therefore protects several layers separately and stores them on a dedicated path and target. That separation is exactly the difference between "we have snapshots" and "we can restore the cluster".
The four layers to protect separately
A complete Kubernetes backup covers four layers, each needing its own tools and cadence:
- etcd - the entire state of the cluster (relevant only for self-hosted).
- Cluster resources - the objects that describe the desired state (Deployments, Services, ConfigMaps, Secrets).
- Persistent volumes - the applications' actual data.
- Application-consistent databases - a transactionally clean state of the database contents.
Anyone backing up only one of these layers has not a backup but a partial aspect. Below, what each layer covers and with what.
Layer 1: etcd, the cluster state
etcd is the control plane's database and holds the complete state of the cluster. If it fails irrecoverably, the cluster is lost - even if all nodes are running. For self-hosted clusters, a regular etcd snapshot (etcdctl snapshot save) is therefore the basis of any recovery; the Kubernetes documentation describes backing up and restoring it.
With managed Kubernetes services the provider handles this layer. With self-operated clusters - the norm on Proxmox or bare metal - it is your responsibility and is often overlooked during setup.
Layers 2 and 3: resources and volumes with Velero
Velero is the established tool for the two middle layers. It backs up Kubernetes resources (cluster objects queried via the API) and persistent volumes to object storage, runs on a schedule, can restore selectively and migrate whole applications between clusters.
Velero thus covers the desired state (layer 2) and the payload data (layer 3) in one tool - including CSI snapshots of the volumes. The target matters: the backup storage (S3-compatible) must live separately from the cluster so that a cluster failure does not take the backup with it. Storage systems such as Longhorn add their own incremental backups of the volumes to NFS or S3.
Layer 4: application-consistent database backups
The layer where most concepts fail: a volume snapshot of a running database is not necessarily consistent - it can be taken mid-transaction. A reliable restore needs application-consistent backups: native dumps (pg_dump, mysqldump) or the database's own backup tool, triggered in a clean state.
Velero can orchestrate these steps via pre and post hooks so that the snapshot is taken at a consistent point in time. What matters is planning this layer deliberately - it is not covered by the layer 3 volume backup.
The tested restore is what counts
Backing up all four layers helps little if no one has verified the recovery. The most common critical finding when taking over inherited clusters is a never-tested restore: backups exist, but no one has ever performed a full recovery. A backup that was never restored is a guess in an emergency, not a safety net.
A dependable concept therefore tests a full restore of the critical layers - including the database - at least once per quarter, and adapts the recovery objectives (RPO, RTO) to business criticality. How this point feeds into the assessment of an existing cluster is shown in the takeover audit; which storage system carries the volumes is placed by Longhorn vs. Rook-Ceph.
Rather have it operated?
You'd rather not run Kubernetes yourself? WZ-IT handles setup, operations and maintenance - GDPR-compliant from Germany.
Frequently Asked Questions
Answers to the most important questions
A VM or volume snapshot captures a point in time of the disks, but not automatically a consistent cluster state. A complete Kubernetes backup protects several layers separately: the control plane's etcd state, the versioned cluster resources, the persistent volumes and application-consistent database backups. A snapshot alone is none of these layers in full depth.
Velero backs up Kubernetes resources (via the API) and persistent volumes to object storage, can run on a schedule, restore and migrate between clusters. What Velero does not do automatically is application consistency for databases: a running database process needs either Velero hooks or native dumps so that the backed-up state is transactionally consistent.
Yes, if you run a self-hosted cluster. etcd holds the entire state of the cluster. An etcd snapshot (etcdctl snapshot save) is the basis for restoring the control plane after a total failure. With managed Kubernetes services the provider handles etcd backup - with self-hosted clusters it is your responsibility.
Through application-consistent backups: either native dumps (pg_dump, mysqldump) or the database's own backup tool, triggered in a consistent state - not just a volume snapshot during active writes. Velero can orchestrate these steps via pre/post hooks so that the snapshot is taken at a consistent point in time.
Regularly and on a schedule - a backup that was never restored is a guess in an emergency, not a safety net. A realistic cadence tests a full restore of the critical layers, including the database, at least once per quarter. Only the tested restore turns backups into a dependable recovery.
No. Synchronous replication across nodes protects against the failure of a single node, but not against accidental deletion, faulty deployments or ransomware - those errors are replicated along with the data. A backup must live on a separate path and target (such as S3-compatible storage) so that it covers exactly those cases.
More on Kubernetes
- What is Kubernetes?
- Do we need Kubernetes?
- Kubernetes vs Docker Compose vs Coolify
- Kubernetes on Proxmox
- Kubernetes on Hetzner
- Kubernetes on OVHcloud
- European Kubernetes providers compared
- k3s vs. RKE2 vs. Talos
- Longhorn vs. Rook-Ceph
- Kubernetes backup: the four layers
- Access Kubernetes privately with NetBird
- Gateway API vs. Ingress
- MetalLB vs. kube-vip
- Migrate from ingress-nginx to the Gateway API
- Migrate from Helm 3 to Helm 4
- Taking over a Kubernetes cluster: audit checklist






