Container und Pods in Kubernetes sind flüchtig: Wird ein Pod neu gestartet oder ersetzt, verschwinden alle Daten in seinem Dateisystem. Ein PersistentVolume (PV) löst das Problem – es ist eine clusterweite Speicherressource, die unabhängig vom Lebenszyklus einzelner Pods existiert und Daten dauerhaft aufbewahrt.
PV, PVC und StorageClass
Drei Bausteine arbeiten zusammen:
- PersistentVolume (PV): Die eigentliche Speicherressource im Cluster, bereitgestellt von einem Administrator oder automatisch per dynamischer Provisionierung.
- PersistentVolumeClaim (PVC): Die Anfrage einer Anwendung nach Speicher – sie nennt gewünschte Größe und Zugriffsart. PVCs sind an einen Namespace gebunden, PVs sind clusterweit.
- StorageClass: Beschreibt die Speicherklasse (etwa SSD, Netzspeicher oder Cloud-Disk) und erzeugt bei Bedarf automatisch passende PVs.
Ein PVC wird an ein PV gebunden, das Kapazität und Zugriffsmodus erfüllt. Der Lebenszyklus eines PV verläuft von Available über Bound zu Released, wenn der Claim gelöscht wird.
Zugriffsmodi und Rückgabe
- Access Modes:
ReadWriteOnce(RWO, ein Knoten),ReadOnlyMany(ROX, mehrere Knoten nur lesend) undReadWriteMany(RWX, mehrere Knoten lesend und schreibend) – entscheidend für die Eignung von Netzspeichern. - Reclaim-Policy:
Retainlässt die Daten nach Löschung des Claims liegen (Sicherung vor Verlust),Deleteentfernt das PV samt Backend-Speicher;Recyclegilt als veraltet.
Als Backends dienen Netzspeicher wie NFS, Ceph oder iSCSI, lokale Festplatten sowie Cloud-Disks (etwa AWS EBS oder Azure Disk) – angesprochen über den CSI-Standard (Container Storage Interface).
Praxis
Typische Nutzer sind datenbankgestützte Anwendungen: Deployments sind für zustandslose Dienste gedacht, während StatefulSets mit volumeClaimTemplates für jeden Pod einen eigenen dauerhaften Speicher anfordern. Das Konzept erinnert an Docker-Volumes – in Kubernetes ist es nur in die Cluster-Verwaltung integriert. Auch ConfigMaps und Secrets erreichen Container über Volumes; sie sind aber flüchtige Konfigurationsdaten, kein dauerhafter Speicher.