Kubernetes-PVC sicher aufräumen:
Das neue Unused-Signal
Kubernetes-PVC sicher aufräumen wird mit Version 1.37 messbarer, aber nicht automatisch. Der neue Beta-Zustand Unused zeigt, ob ein PersistentVolumeClaim (PVC) aktuell von keinem nicht-terminalen Pod referenziert wird. Sein lastTransitionTime liefert einen belastbaren Startpunkt für die Prüfung.
Das Signal beweist jedoch weder, dass die Daten geschäftlich entbehrlich sind, noch dass ein Snapshot wiederherstellbar ist. Teams sollten es deshalb als Kandidatenfilter in einen kontrollierten Prozess einbauen—nicht direkt an einen Löschbefehl koppeln.
Unused=True, warten Sie eine zum Datenzweck passende Frist ab, klären Sie Eigentümer und Wiederanlaufbedarf, prüfen Sie Reclaim Policy und Sicherung, testen Sie den Restore und löschen Sie erst nach dokumentierter Freigabe. Das Kubernetes-Signal startet die Entscheidung; es trifft sie nicht.Was das Unused-Signal tatsächlich misst
Kubernetes 1.37 hebt das Feature Gate PersistentVolumeClaimUnusedSinceTime auf Beta und aktiviert es standardmäßig. Der bestehende PVC-Protection-Controller setzt Unused=True mit dem Grund NoPodsUsingPVC, wenn kein nicht-terminaler Pod den Claim referenziert. Sobald ein laufender oder noch wartender Pod den PVC nennt, steht der Zustand auf False.
| Beobachtung | Was sie belegt | Was offen bleibt |
|---|---|---|
Unused=True | Kein nicht-terminaler Pod referenziert den PVC | Eigentümer, Datenwert, künftige Nutzung |
lastTransitionTime | Zeitpunkt, an dem der Controller den Zustandswechsel sah | Exakter Infrastruktur-Unmount |
Kein Unused-Zustand | Keine verwertbare Aussage | Feature, Upgrade und erster Zustandswechsel prüfen |
Unused=False | Mindestens ein nicht-terminaler Pod nennt den PVC | Ob der Pod tatsächlich Daten liest oder schreibt |
Terminiert ein Batch-Pod mit Succeeded oder Failed, zählt er nicht länger als Nutzer. Ein nicht planbarer Pending-Pod zählt dagegen als Nutzung, weil bereits die Absicht im Pod-Spec geschützt wird. Laut Kubernetes Enhancement Proposal (KEP) kann der Controllerzeitpunkt Sekunden oder Minuten nach dem tatsächlichen Unmount liegen. Die ausgewiesene Leerlaufzeit kann dadurch zu kurz, aber nicht zu lang sein.
Warum Unused=True keine Löschfreigabe ist
Ein PVC kann absichtlich ohne aktiven Pod bestehen. Beispiele sind pausierte Testumgebungen, seltene Monatsläufe, manuell gestartete Analyse-Jobs, ein StatefulSet während einer Migration oder Daten für einen vorgesehenen Wiederanlauf. Auch ein gelöschtes Deployment kann außerhalb des Clusters noch als gewünschter Zustand in Git, Terraform oder einem Release-System existieren.
Die KEP nennt automatische Löschung ausdrücklich als Nicht-Ziel. Das ist die richtige Grenze: Kubernetes kennt Pod-Referenzen, aber nicht Aufbewahrungsfristen, Vertragsanforderungen, Datenklassifizierung oder den geschäftlichen Eigentümer. Ein sauberer Prozess verbindet deshalb technische Evidenz mit organisatorischer Verantwortung.
Wichtige Grenze: Deaktiviert ein Betreiber das Feature Gate, bleiben vorhandene Bedingungen in etcd erhalten, werden aber nicht mehr aktualisiert. Prüfen Sie vor jeder Automatisierung, ob kube-controller-manager das Signal aktiv pflegt und ob Update-Fehler sichtbar sind.
Die Risikomatrix für ungenutzte PersistentVolumeClaims
Eine einheitliche Frist für alle Claims ist bequem und gefährlich. Der Datenzweck bestimmt Wartezeit, Sicherung und Freigabe. Die folgende Matrix ist ein Entscheidungsmodell von ATMAN, keine Kubernetes-Vorgabe.
| Klasse | Beispiele | Mindestsicherung vor Löschung |
|---|---|---|
| Temporär | Preview-Umgebung, reproduzierbare Testdaten | Eigentümerregel, kurze Frist, Manifest reproduzierbar |
| Betrieblich | CI-Cache, Import-Zwischenstand, interner Dienst | Abhängigkeitscheck, definierte Frist, dokumentierter Rückweg |
| Geschäftskritisch | Anwendungsdatenbank, Produktionsdateien | Snapshot oder Backup, erfolgreicher Restore-Test, Vier-Augen-Freigabe |
| Reguliert | Audit-, Vertrags- oder personenbezogene Daten | Aufbewahrungs- und Löschregel, Datenverantwortlicher, protokollierte Freigabe |
Labels wie owner, data-class, retention und restore-tier machen Entscheidungen prüfbar. Fehlende Labels sind kein Grund für schnelles Löschen, sondern ein Signal für manuelle Klärung. Wer Kosten zuordnet, sollte zusätzlich StorageClass, angeforderte Kapazität, Zone und Provider-Volume-ID erfassen.
Sechs Schritte für sicheres Kubernetes-PVC-Cleanup
- Kandidaten nur lesen. Listen Sie PVC mit
Unused=TrueundlastTransitionTimeclusterweit auf. Erzeugen Sie zunächst einen Bericht; ein Leselauf darf nichts patchen oder löschen. - Signalgesundheit prüfen. Bestätigen Sie Kubernetes 1.37, das aktive Feature Gate und aktuelle Zustandswechsel. Beobachten Sie
pvc_protection_controller_unused_condition_syncs_totalsowie Controller-Fehler, bevor eine Frist berechnet wird. - Geplante Nutzung ausschließen. Suchen Sie nach CronJobs, pausierten Workloads, StatefulSets, GitOps-Manifests, Helm-Releases und Wiederanlaufplänen. Ein heute fehlender Pod kann morgen absichtlich zurückkehren.
- Eigentümer und Schutzklasse bestätigen. Ordnen Sie Namespace und Claim einem verantwortlichen Team zu. Unklare Claims gehen in Quarantäne oder Ticketbearbeitung, nicht in automatische Löschung.
- Rückweg beweisen. Prüfen Sie StorageClass und Reclaim Policy. Erstellen Sie für schützenswerte Daten eine geeignete Sicherung. Kubernetes-VolumeSnapshots setzen einen unterstützenden CSI-Treiber voraus; testen Sie außerdem einen Restore in der benötigten Topologie.
- Freigeben, löschen und nachprüfen. Dokumentieren Sie Kandidat, Leerlaufzeit, Eigentümer, Sicherungsnachweis und Genehmigung. Löschen Sie zuerst kontrolliert den PVC und prüfen Sie anschließend PV, Provider-Volume, Snapshot-Aufbewahrung, Anwendung und Kosteninventar.
Der Ablauf passt in Cloud-&-DevOps-Betrieb mit nachvollziehbaren Freigaben. Für Anwendungen mit sensiblen Daten gehören Aufbewahrung und Löschberechtigung zusätzlich in das Cybersicherheits- und Datenmodell. Wer den Cluster erst auf 1.37 hebt, sollte die separate Prüfung von Node-Änderungen und Rollback nicht mit der Speicherbereinigung vermischen.
Reclaim Policy und Snapshot sind getrennte Entscheidungen
Die Reclaim Policy bestimmt, was mit dem PersistentVolume nach dem Löschen seines Claims geschieht. Dynamisch bereitgestellte Volumes erben sie in der Regel aus der StorageClass. Delete kann das externe Speicherobjekt mit entfernen; Retain lässt es zur manuellen Wiedergewinnung zurück. Keiner der beiden Werte ersetzt eine Aufbewahrungsentscheidung.
Ein VolumeSnapshot ist ebenfalls kein universelles Backup. Kubernetes stellt Snapshot-Objekte nur für CSI-Treiber bereit, und der Treiber muss die Funktion unterstützen. Zusätzlich beeinflussen DeletionPolicy, Provider-Aufbewahrung und Topologie, ob Daten nach dem Löschen noch existieren und wo sie wiederhergestellt werden können. Der sinnvolle Gate lautet daher nicht „Snapshot vorhanden“, sondern „Restore unter den benötigten Bedingungen erfolgreich“.
Häufige Fragen zum Kubernetes-PVC-Aufräumen
Löscht Kubernetes 1.37 ungenutzte PVC automatisch?
Nein. Kubernetes ergänzt nur den informativen Unused-Zustand und einen Übergangszeitpunkt. Eine Löschentscheidung, Frist, Freigabe oder Sicherung bleibt Aufgabe des Betreibers.
Bedeutet Unused=True, dass die Daten nicht mehr gebraucht werden?
Nein. Der Zustand bedeutet nur, dass kein nicht-terminaler Pod den Claim aktuell referenziert. Zeitgesteuerte Jobs, pausierte Anwendungen, Wiederanlaufpläne und externe Abhängigkeiten müssen separat geprüft werden.
Reicht ein VolumeSnapshot als Backup vor der Löschung?
Nur wenn CSI-Treiber, Aufbewahrung, Topologie und Wiederherstellung geprüft sind. Ein vorhandener Snapshot ohne erfolgreichen Restore-Test ist noch kein belastbarer Rückweg.
Welche Wartefrist ist für ungenutzte PVC sinnvoll?
Es gibt keine universelle Frist. Entwicklungsdaten können eine kurze Frist erlauben; Produktions-, Audit- oder Wiederanlaufdaten benötigen meist längere, verantwortungsbezogene Regeln. Die Frist folgt dem Datenzweck und dem getesteten Restore-Ziel.
Mit einem Nur-Lese-Bericht beginnen
Der nächste Schritt ist keine Löschautomatik. Starten Sie mit einem Nur-Lese-Bericht für einen begrenzten Cluster, prüfen Sie falsche Kandidaten und ergänzen Sie fehlende Eigentümerdaten. Erst wenn Wiederherstellung und Freigabe praktisch funktionieren, darf aus Beobachtung eine kontrollierte Aktion werden.
Quellen und Methodik
Dieser Beitrag trennt Kubernetes-Verhalten von der ATMAN-Empfehlung für einen risikobasierten Freigabeprozess. Matrix und Sechs-Schritte-Ablauf sind technische Analyse, keine Funktion oder Vorgabe des Kubernetes-Projekts. Alle Quellen wurden am 1. Oktober 2026 abgerufen.
- Kubernetes Blog: Kubernetes v1.37—Tracking When a PersistentVolumeClaim Was Last Used (Beta), veröffentlicht am 21. September 2026; Abruf 1. Oktober 2026
- Kubernetes Contributors: KEP-5541—Report Last Used Time On a PVC, Implementierungsstand Kubernetes 1.37; Abruf 1. Oktober 2026
- Kubernetes Release Team: Kubernetes v1.37—Garhwal, veröffentlicht am 26. August 2026; Abruf 1. Oktober 2026
- Kubernetes Documentation: Storage Classes, aktualisiert am 11. August 2026; Abruf 1. Oktober 2026
- Kubernetes Documentation: Volume Snapshots, aktualisiert am 30. Juli 2026; Abruf 1. Oktober 2026