Im Fokus der Policy Working Group
TL;DR Die Policy Working Group von Kubernetes hat sich mit der Entwicklung und Standardisierung von …
Kubernetes v1.33 führt einen neuen Streaming-Encoder für List-Antworten ein, der die Effizienz und Stabilität des API-Servers bei großen Datenmengen verbessert. Dieser Mechanismus ermöglicht eine schrittweise Verarbeitung und Übertragung von Listenelementen, wodurch der Speicherverbrauch signifikant gesenkt wird und die Leistung des Clusters optimiert wird.
Die Verwaltung der Stabilität von Kubernetes -Clustern wird mit wachsender Infrastruktur immer wichtiger. Eine der größten Herausforderungen bei der Arbeit mit großen Clustern ist die Handhabung von List-Anfragen, die umfangreiche Datensätze abrufen. Bisherige API-Antwortencoder serialisieren die gesamte Antwort in einem einzigen zusammenhängenden Speicherblock, was zu unnötigem Speicherverbrauch führt. Insbesondere bei großen Clustern kann dies zu einer erheblichen Belastung des kube-apiserver führen, da der gesamte Antwortkörper im Speicher gehalten wird, selbst wenn Teile der Antwort bereits an den Client gesendet werden.
Die aktuelle Implementierung führt dazu, dass bei Netzwerküberlastung große Speicherblöcke für längere Zeit aktiv bleiben, was das Risiko eines Out-of-Memory (OOM) Zustands erhöht, insbesondere wenn mehrere große List-Anfragen gleichzeitig bearbeitet werden. Die Verwendung von sync.Pool zur Wiederverwendung von Speicherpuffern ist zwar effizient für konsistente Arbeitslasten, führt jedoch zu Herausforderungen bei sporadischen großen List-Antworten, da die Speicherpools nach der Nutzung nicht freigegeben werden.
Die Einführung des Streaming-Encoders für List-Antworten zielt darauf ab, diese Probleme zu lösen. Der neue Mechanismus verarbeitet und überträgt jedes Element in der Items-Struktur einzeln, anstatt das gesamte Array als einen Block zu kodieren. Dies ermöglicht eine schrittweise Freigabe des Speichers, während die Daten übertragen werden. Die Architektur des Streaming-Encoders sorgt dafür, dass die Speicherbelastung des API-Servers voraussagbar und handhabbar bleibt, unabhängig von der Anzahl der Objekte in einer List-Antwort.
Der Streaming-Encoder gewährleistet auch die Rückwärtskompatibilität, indem er die Go-Struktur-Tags vor der Aktivierung rigoros validiert. Dies stellt sicher, dass die Ausgabe identisch bleibt und keine Änderungen auf der Client-Seite erforderlich sind. Alle Kubernetes -List-Typen, einschließlich benutzerdefinierter Ressourcen, werden unterstützt.
Die Implementierung des Streaming-Encoders führt zu mehreren Vorteilen:
Die Einführung des Streaming-Encoders wird voraussichtlich die Leistung von Kubernetes -Clustern erheblich verbessern, insbesondere in Umgebungen mit häufigen großen List-Operationen.
Die neue Streaming-Encoding-Funktion in Kubernetes v1.33 stellt einen bedeutenden Fortschritt in der Handhabung großer Datenmengen dar und verbessert die Stabilität sowie die Effizienz des API-Servers. Zukünftige Entwicklungen könnten weitere Optimierungen und Features bieten, um die Verwaltung von Kubernetes-Clustern weiter zu vereinfachen.
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.
TL;DR Die Policy Working Group von Kubernetes hat sich mit der Entwicklung und Standardisierung von …
TL;DR Die Kubernetes-Version 1.34 hat die Pod-Level-Ressourcen in den Beta-Status überführt, was …
TL;DR Die Kubernetes-Version 1.34 führt den snapshottable API-Server-Cache in den Beta-Status ein, …