Backup Kubernetes: non solo volumi
Un cluster Kubernetes ha due assi di stato da proteggere:
- Risorse API — Deployment, Service, ConfigMap, Secret, CRD, namespace
- Persistent Volumes — dati applicativi (database, file)
Tool tradizionali (etcdctl snapshot) salvano etcd ma non i PV; snapshot cloud-provider salvano volumi ma non il contesto K8s. Serve un tool che fa entrambi e orchestra il restore coerente.
Il rilascio
Velero è pubblicato da Heptio (Craig McLuckie, Joe Beda, cofounder Kubernetes) nell’agosto 2017 con nome originale “Ark”. Scritto in Go, licenza Apache 2.0.
Caratteristiche
- Backup on-demand e scheduled (cron)
- Namespace filtering — backup selettivo di risorse
- Label selector — backup solo di risorse etichettate
- Volume snapshot — via CSI o plugin-specific (AWS EBS, Azure Disk, GCP PD)
- Restic/Kopia integration — backup file-level quando CSI non supporta
- Object storage — S3, GCS, Azure Blob, MinIO compatibile
- Hooks — pre/post backup per consistenza applicativa (es.
fsfreezePostgreSQL) - Cross-cluster restore — migration tra cluster
velero backup create daily-$(date +%Y%m%d) \
--include-namespaces prod,staging \
--snapshot-volumes \
--ttl 720h
Casi d’uso
- Disaster Recovery — restore completo in nuovo cluster dopo perdita
- Cluster migration — da on-prem a cloud, da un cloud all’altro
- Upgrade Kubernetes — backup pre-upgrade per sicurezza
- Dev/staging refresh — clone produzione anonimizzata
- Compliance — retention backup (GDPR, ISO 27001, sanità)
Alternative
- Kasten K10 (Veeam) — commerciale, UI ricca
- Portworx PX-Backup (Pure Storage) — commerciale
- Trilio — enterprise
- Stash (AppsCode) — OSS simile
- CSI VolumeSnapshot nativo — senza backup risorse API
- etcdctl snapshot — solo etcd, no PV
Plugin ecosystem
Plugin per provider storage e cloud:
- AWS, Azure, GCP ufficiali
- vSphere, OpenStack
- MinIO, Ceph RGW compatibili S3
- Plugin community per backend custom
Nel contesto italiano
Velero è adottato in:
- Banche e assicurazioni — DR obbligatorio per K8s produzione
- PA digitale — progetti con requisiti backup regolamentari
- Sanità digitale — FSE regionali con retention storica
- Hosting provider italiani — K8s-as-a-Service multi-cliente
- MSP — managed backup per clienti con K8s
Spesso integrato con MinIO on-prem come backend S3-compatible per evitare cloud egress.
Riferimenti: Velero (Heptio, agosto 2017, originale “Ark”). Andy Goldstein. Licenza Apache 2.0. Scritto in Go. Backup risorse API + PV. Restic/Kopia integration.