Ein VolumeSnapshot ist in Kubernetes ein eingefrorenes Standbild eines persistenten Volumes – die Momentaufnahme auf dem Speichersystem. Damit lassen sich Datenstände sichern und später wiederherstellen, etwa vor Updates oder nach Fehlern. Die Funktion ist seit Kubernetes 1.20 stabil (GA).
Drei Bausteine
Wie bei PV und PVC gehören drei Ressourcen zusammen:
- VolumeSnapshot: die Anfrage – ähnlich einem PersistentVolumeClaim.
- VolumeSnapshotContent: der tatsächliche Snapshot im Speichersystem – ähnlich einem PersistentVolume.
- VolumeSnapshotClass: die Klasse – ähnlich einer StorageClass; sie benennt den CSI-Treiber und die Parameter.
Voraussetzung ist ein CSI-Treiber mit Snapshot-Fähigkeit sowie der Sidecar-Container external-snapshotter im Cluster.
Wiederherstellen
Zum Zurückspielen erzeugt man einen neuen PVC und verweist per dataSource auf den Snapshot – Kubernetes stellt den alten Datenstand auf dem frischen Volume wieder her. Typische Anwendungen sind Backups von StatefulSets wie Datenbanken sowie Wiederherstellungspunkte vor riskanten Änderungen.
Abgrenzung: Der allgemeine Begriff Snapshot umfasst auch VM- oder Dateisystem-Snapshots; der VolumeSnapshot ist die Kubernetes-Variante für persistente Volumes.