Kubernetes 1.33: Volumen-Populator jetzt allgemein verfügbar – Das ändert sich für dich!
Erfahre alles über die neuen Funktionen der Volumen-Populator in Kubernetes 1.33 und wie sie deine Arbeit erleichtern können.
Kubernetes Volume Populators sind jetzt allgemein verfügbar (GA)! Mit der AnyVolumeDataSource
-Funktion können Nutzer nun jede geeignete benutzerdefinierte Ressource als Datenquelle für ein PersistentVolumeClaim (PVC) angeben.
Ein Beispiel, wie du dataSourceRef
in PVC verwenden kannst:
yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc1
spec:
…
dataSourceRef:
apiGroup: provider.example.com
kind: Provider
name: provider1
Was ist neu
In dieser Version gibt es vier wesentliche Verbesserungen im Vergleich zur Beta.
Populator-Pod ist optional
Während der Beta-Phase haben die Mitwirkenden von Kubernetes potenzielle Ressourcenlecks beim Löschen von PersistentVolumeClaims (PVC) identifiziert, während die Volumenbefüllung noch im Gange war. Diese Lecks traten aufgrund von Einschränkungen bei der Handhabung von Finalizern auf. Vor der Graduierung zur allgemeinen Verfügbarkeit hat das Kubernetes-Projekt die Unterstützung für das Löschen temporärer Ressourcen (PVC prime usw.) hinzugefügt, wenn das ursprüngliche PVC gelöscht wird.
Dafür wurden drei neue pluginbasierte Funktionen eingeführt:
PopulateFn()
: Führt die provider-spezifische Datenbefüllungslogik aus.
PopulateCompleteFn()
: Überprüft, ob der Datenbefüllungsvorgang erfolgreich abgeschlossen wurde.
PopulateCleanupFn()
: Räumt temporäre Ressourcen auf, die von den provider-spezifischen Funktionen nach Abschluss der Datenbefüllung erstellt wurden.
Ein Beispiel für einen Provider wurde in lib-volume-populator/example hinzugefügt.
Mutator-Funktionen zur Modifizierung von Kubernetes-Ressourcen
Für GA hat der CSI-Volumenpopulator-Controller-Code eine MutatorConfig
erhalten, die die Spezifikation von Mutator-Funktionen ermöglicht, um Kubernetes-Ressourcen zu modifizieren. Wenn beispielsweise das PVC prime nicht eine exakte Kopie des PVC ist und du provider-spezifische Informationen für den Treiber benötigst, kannst du diese Informationen in die optionale MutatorConfig
aufnehmen. Dadurch kannst du die Kubernetes-Objekte im Volumenpopulator anpassen.
Flexible Metrikbehandlung für Provider
Unsere Beta-Phase hat einen neuen Bedarf aufgezeigt: Die Notwendigkeit, Metriken nicht nur von lib-volume-populator, sondern auch von anderen Komponenten innerhalb des Provider-Codes zu aggregieren.
Um dem gerecht zu werden, hat SIG Storage einen Provider-Metrik-Manager eingeführt. Diese Verbesserung delegiert die Implementierung der Metriklogik an den Provider selbst, anstatt sich ausschließlich auf lib-volume-populator zu verlassen. Dieser Wandel bietet mehr Flexibilität und Kontrolle über die Metriksammlung und -aggregation und ermöglicht eine umfassendere Sicht auf die Leistung des Providers.
Aufräumen temporärer Ressourcen
Während der Beta-Phase haben wir potenzielle Ressourcenlecks beim Löschen von PersistentVolumeClaims (PVC) während der Volumenbefüllung identifiziert, aufgrund von Einschränkungen bei der Handhabung von Finalizern. Wir haben den Populator verbessert, um das Löschen temporärer Ressourcen (PVC prime usw.) zu unterstützen, wenn das ursprüngliche PVC in dieser GA-Version gelöscht wird.
Wie man es verwendet
Um es auszuprobieren, folge bitte den Schritten im vorherigen Beta-Blog.
Für Entwickler und DevOps-Teams bringt diese neue GA-Version zahlreiche Vorteile, die die Arbeit mit PersistentVolumeClaims erheblich erleichtern können. Bei Fragen oder zur Unterstützung steht ayedo, dein Kubernetes-Partner, bereit!
Quelle: Kubernetes Blog