Kubernetes v1.36: Staleness-Minderung und Beobachtbarkeit für Controller
Quelle: Kubernetes Blog
3 Minuten Lesezeit

Kubernetes v1.36: Staleness-Minderung und Beobachtbarkeit für Controller

Kubernetes v1.36 führt Verbesserungen zur Minderung von Staleness in Controllern ein, um die Zuverlässigkeit und Reaktionsfähigkeit zu erhöhen. Diese Version umfasst neue Funktionen in

TL;DR

Kubernetes v1.36 führt Verbesserungen zur Minderung von Staleness in Controllern ein, um die Zuverlässigkeit und Reaktionsfähigkeit zu erhöhen. Diese Version umfasst neue Funktionen in client-go und kube-controller-manager, die eine konsistente Verarbeitung von Ereignissen gewährleisten und die Beobachtbarkeit der Controller-Operationen verbessern.

Kubernetes v1.36 bringt bedeutende Fortschritte in der Handhabung von Staleness, einem Problem, das viele Controller betrifft und zu inkorrektem Verhalten führen kann. Staleness tritt auf, wenn der lokale Cache eines Controllers veraltete Informationen enthält, was dazu führt, dass der Controller falsche oder verspätete Aktionen ausführt. Um dieses Problem zu adressieren, wurden in der neuen Version sowohl client-go als auch der kube-controller-manager aktualisiert.

Staleness entsteht, wenn der Controller, der die aktuelle Cluster-Statusinformation in einem Cache speichert, veraltete Daten verwendet. Dies kann passieren, wenn der Controller neu gestartet wird oder wenn der API-Server nicht verfügbar ist. In diesen Fällen kann der Controller nicht die neuesten Informationen abrufen, was zu inkorrektem Handeln führt. Die neue Version von Kubernetes zielt darauf ab, diese Probleme zu minimieren und die Reaktionsfähigkeit der Controller zu verbessern.

Verbesserungen in Kubernetes v1.36

Die Verbesserungen in Kubernetes v1.36 beinhalten wesentliche Änderungen in client-go, insbesondere die Einführung von atomarer FIFO-Verarbeitung. Diese Funktion ermöglicht es der Warteschlange, Operationen, die in Batches empfangen werden, atomar zu verarbeiten. Dadurch wird sichergestellt, dass die Warteschlange stets in einem konsistenten Zustand bleibt, auch wenn Ereignisse nicht in der Reihenfolge eintreffen, in der sie empfangen wurden. Zuvor konnte die Verarbeitung in der Reihenfolge des Eintreffens zu Inkonsistenzen im Cache führen.

Zusätzlich erhalten Anwender von client-go die Möglichkeit, den neuesten Ressourcenstatus des Caches zu überprüfen. Dies wird durch die neue Funktion LastStoreSyncResourceVersion() ermöglicht, die es den Controllern erlaubt, vor der Durchführung von Aktionen den aktuellen Stand des Caches zu validieren.

Im kube-controller-manager können vier verschiedene Controller – DaemonSet, StatefulSet, ReplicaSet und Job Controller – von diesen Verbesserungen profitieren. Diese Controller, die oft mit Pods arbeiten, sind in der Regel am stärksten umkämpft. Die neuen Funktionen sind standardmäßig aktiviert und können bei Bedarf deaktiviert werden.

Wenn der relevante Feature-Gate aktiviert ist, überprüft der Controller vor der Ausführung einer Aktion die neueste Ressourcenversion des Caches. Ist diese niedriger als die Version, die der Controller im API-Server geschrieben hat, wird keine Aktion durchgeführt, da der Cache veraltet ist. Dies stellt sicher, dass der Controller nur auf aktuelle Informationen reagiert.

Technische Details/Implikationen

Die Implementierung dieser neuen Funktionen erfordert eine Anpassung von Informer-Autoren, die client-go verwenden. Diese können die neuen Features sofort nutzen, um sicherzustellen, dass ihre Caches nicht veraltet sind, bevor sie Aktionen ausführen. Die Bereitstellung einer ConsistencyStore-Datenstruktur ermöglicht eine einfache Abfrage des Caches und den Vergleich der neuesten Ressourcenversion, was die Gesamtzuverlässigkeit der Controller-Operationen erhöht.

Fazit/Ausblick

Die Verbesserungen in Kubernetes v1.36 zur Minderung von Staleness und zur Erhöhung der Beobachtbarkeit bieten eine solide Grundlage für die Entwicklung robusterer und reaktionsfähiger Controller. Diese Entwicklungen werden voraussichtlich die Effizienz und Stabilität von Kubernetes-Umgebungen weiter steigern.

Originalartikel

Veröffentlicht von Kubernetes Blog

Zum Original-Artikel

Automatisierte Zusammenfassung

Dieser Beitrag wurde automatisch aus dem englischsprachigen Original erstellt und auf Deutsch zusammengefasst. Wir bieten diesen Service an, um Sie bei der oft zerklüfteten und überwiegend englischsprachigen News-Situation im Bereich Cloud-Native Software, Souveräne Cloud, Kubernetes und Container-Technologien zeitnah auf Deutsch zu informieren.

Ähnliche Artikel

Kontakt aufnehmen