Training Module
Kubernetes Storage — Volumes, PersistentVolumes & Claims
In diesem Modul (70 Minuten Input, 30 Minuten Hands-on) klärt ihr die
Frage, die jedem zustandsbehafteten Workload vorausgeht: Welche Daten
überleben einen Pod-Neustart – und welche nicht? Kurzer Rückblick auf
emptyDir, das ihr bereits im Modul Anwendungsdesign als
Sidecar-Sharing-Mechanismus gesehen habt, dann hostPath
als node-gebundenes Volume mit klarer Einschränkung für produktive
Multi-Node-Cluster. Der eigentliche Kern des Moduls ist die
Unterscheidung zwischen einfachen Volumes (an Pod oder Node gebunden,
kein eigenständiges Kubernetes-Objekt) und einem
PersistentVolume (PV) – einem eigenständigen
Cluster-Objekt für Speicher, dessen Lebenszyklus unabhängig vom Pod
ist und das entweder vom Administrator vorab angelegt oder dynamisch
über eine StorageClass provisioniert wird. Damit ein Pod
ein PV nutzen kann, braucht er eine
PersistentVolumeClaim (PVC): die Anforderung eines
Pods an Speicher (Größe, accessModes wie
ReadWriteOnce), die Kubernetes einem passenden PV
zuordnet – erst mit dieser Zuordnung wird die PVC gültig. Im Hands-on
legt ihr auf einem lokalen Minikube-Cluster eine PVC an, startet
einen Pod damit, schreibt Daten hinein, löscht den Pod wieder und
erstellt ihn neu – und weist live nach, dass die Daten erhalten
bleiben. Genau das ist der Unterschied zu emptyDir, den
dieses Modul greifbar macht. Voraussetzung ist das Modul “Kubernetes
Workloads & Konfiguration” – die Session läuft weiterhin vollständig
lokal über Minikube, ohne Cloud-Account und ohne Kostenwirkung.
Format
70 Minuten Input plus 30 Minuten Hands-on, live (remote oder vor Ort)
Teilnehmende
Entwickler:innen und Ops, die wissen wollen, welche Daten einen Pod-Neustart überleben – und welche nicht
Voraussetzungen
Abgeschlossenes Modul “Kubernetes Workloads & Konfiguration” oder gleichwertige Vorkenntnisse, lauffähige lokale Docker-Umgebung für Minikube
Warum dieses Training für deine Organisation wirkt
Container-Dateisysteme sind flüchtig
Wird ein Container neu gestartet, sind alle Daten im Container-Dateisystem verloren. Wer das erst beim ersten Datenverlust in Produktion lernt, hat das Volume-Modell falsch eingeschätzt – nicht das Werkzeug ist schuld, sondern die fehlende Unterscheidung der Volume-Typen.
Drei Bindungsebenen, eine Entscheidung
emptyDir ist an den Pod gebunden, hostPath an den Node, ein PersistentVolume ist ein eigenständiges Cluster-Objekt. Diese Bindungsebene zu kennen entscheidet, ob ein Datenbank-Volume einen Pod-Umzug übersteht oder nicht.
PVC ist ein Vertrag, kein Speicherplatz
Eine PersistentVolumeClaim reserviert nicht selbst Speicher, sie fordert ihn an. Erst die Zuordnung zu einem passenden PersistentVolume macht sie gültig – ein Unterschied, der jede Fehlersuche bei “Pod hängt in Pending” abkürzt.
Was Teilnehmende mitnehmen
emptyDirals pod-gebundenes Volume für Container-übergreifenden Datenaustausch wiedererkennen (aus dem Modul Anwendungsdesign) und gegen persistente Volume-Typen abgrenzen.hostPathals node-gebundenes Volume einordnen und begründen, warum es für produktive Multi-Node-Cluster nur eingeschränkt geeignet ist.- Ein PersistentVolume als eigenständiges, vom Pod-Lebenszyklus entkoppeltes Cluster-Objekt beschreiben, das manuell oder dynamisch über eine
StorageClassangelegt wird. - Eine PersistentVolumeClaim als Speicheranforderung eines Pods formulieren und die Binding-Regel korrekt anwenden: die Claim wird erst mit zugeordnetem PV gültig, und das PV muss mindestens so viel Speicher bereitstellen, wie angefordert wurde.
accessModeswieReadWriteOnceeinem PV/PVC-Paar zuordnen und einordnen, was der Modus für gleichzeitigen Zugriff mehrerer Pods bedeutet.- Eine PersistentVolumeClaim im Pod mounten und live nachweisen, dass die Daten einen Pod-Löschvorgang überleben – der zentrale Unterschied zu
emptyDir.
Für wen dieses Modul ideal ist
- • Entwickler:innen und Ops mit abgeschlossenem Modul “Kubernetes Workloads & Konfiguration” oder gleichwertigen Vorkenntnissen
- • Alle, die vor dem ersten zustandsbehafteten Workload (Datenbank, Message Queue, Cache mit Persistenz) wissen wollen, welches Volume wirklich einen Pod-Neustart übersteht
- • Teams, die bisher
emptyDirund “echte” Persistenz nicht sauber unterschieden haben
Rahmendaten
- • Dauer: 70 Minuten Input live (remote oder vor Ort), plus 30 Minuten Hands-on
- • Format: Input, Live-Demo, abschließendes Hands-on zum PVC-Lebenszyklus
- • Voraussetzungen: abgeschlossenes Modul “Kubernetes Workloads & Konfiguration”, lauffähige lokale Docker-Umgebung, keine Cloud-Kostenwirkung
Modulaufbau & Agenda
Volumes im Rückblick: emptyDir & hostPath (20 min): kurzer Rückverweis auf
emptyDiraus dem Modul Anwendungsdesign, dannhostPathals node-gebundenes Volume mit seiner Einschränkung für Multi-Node-Cluster.PersistentVolume: eigenständiges Cluster-Objekt (20 min): Abgrenzung zu den einfachen Volume-Typen, manuelle Anlage vs. dynamische Provisionierung über eine
StorageClass.PersistentVolumeClaim, AccessModes & StorageClass (20 min): die Binding-Regel zwischen PVC und PV,
accessModeswieReadWriteOnce, und der Minikube-eigenestandard-StorageClass-Provisioner als lokaler Weg zur dynamischen Provisionierung.Puffer/Q&A zum Input-Teil (10 min): offene Fragen aus den ersten drei Blöcken, bevor es ins Hands-on geht.
Hands-on (30 min): PVC anlegen, Pod damit starten, Daten schreiben, Pod löschen und neu erstellen, Persistenz der Daten live prüfen.
Dieses Modul setzt das Aufbaumodul Kubernetes Workloads & Konfiguration — die Objekte für den Alltag voraus. Pod-Lifecycle, ConfigMap und Secret werden dort erklärt und hier nicht erneut eingeführt.
Wer emptyDir bereits als Sidecar-Sharing-Mechanismus
kennengelernt hat und stattdessen die Multi-Container- und
Runtime-Absicherungs-Perspektive vertiefen will – Sidecar/
Ambassador/Adapter, Job/CronJob, securityContext und
ServiceAccount – findet das im gleichrangigen, unabhängigen
Vertiefungsmodul
Kubernetes Anwendungsdesign — Multi-Container-Patterns, Jobs & Security Context.
Dieses Modul ist unabhängig von den fünf weiteren Vertiefungsmodulen auf Kubernetes Workloads & Konfiguration: Kubernetes Administration — RBAC, Node-Betrieb und Cluster-Netzwerk, Kubernetes Networking Vertiefung — Service Discovery, DNS und Ingress-Pfadregeln, Kubernetes: Monitoring & Troubleshooting, Kubernetes Ressourcenmanagement & Autoscaling — Requests, Limits und HorizontalPodAutoscaler und Helm — Paketmanagement für Kubernetes. Storage-Requests einer PersistentVolumeClaim (dieses Modul) und Compute-Requests/-Limits eines Containers (dort) sind zwei getrennte Konzepte. Alle setzen nur das Workloads-Modul voraus, nicht sich gegenseitig, und lassen sich in beliebiger Reihenfolge buchen.
Wer PersistentVolume, PersistentVolumeClaim und StorageClass aus diesem Modul als Baustein für zustandsbehaftete Workloads mit stabiler Pro-Replica-Identität weiterdenken will – volumeClaimTemplates für automatisches Pro-Replica-PVC-Provisioning, geordnetes Scaling über podManagementPolicy sowie die Kopplung an einen Headless Service für stabile Pro-Pod-DNS-Namen – findet das im Aufbaumodul Kubernetes StatefulSets — Stabile Identität für zustandsbehaftete Workloads, das dieses Modul und “Kubernetes Networking Vertiefung” gemeinsam voraussetzt.
Hands-on Inhalte (Auszug)
PVC anlegen und Pod starten
- Eine PersistentVolumeClaim mit
accessModes: [ReadWriteOnce]und angeforderter Größe anwenden - Einen Pod starten, der die PVC über
volumes.persistentVolumeClaim.claimNamemountet, und mitkubectl get pvcden StatusBoundprüfen
Daten schreiben
- Über
kubectl execeine Datei in den gemounteten Pfad schreiben - Den Inhalt der Datei einmal live bestätigen, bevor der Pod gelöscht wird
Pod löschen und neu erstellen
- Den Pod löschen, die PVC dabei ausdrücklich nicht anfassen
- Einen neuen Pod mit derselben PVC anwenden
Persistenz live nachweisen
- Im neuen Pod dieselbe Datei auslesen und ihren unveränderten Inhalt zeigen
- Den Kontrast zu
emptyDireinordnen, wo dieselbe Übung die Datei nicht überleben ließe
Dieses Modul ist Teil unserer Pilotphase. Gemeinsam mit euch definieren wir passende Metriken (z. B. Zeit bis zum erfolgreich nachgewiesenen PVC-Lebenszyklus) und werten sie im Anschluss transparent aus. Ergebnisse veröffentlichen wir, sobald sie belastbar sind.
Bereit, das Modul zu buchen?
Wir passen die Hands-on-Übung auf euren Erfahrungsstand und eure Zielumgebung an.
Academy Briefing anfragen