Die Kubernetes-Integrationskosten: Prometheus, Cilium und die Realität in der Produktion
TL;DR Die Integration mehrerer CNCF-Projekte in Produktionsumgebungen kann erhebliche versteckte …
Die Kubernetes-Version 1.36 führt signifikante Updates für die Memory QoS-Funktion ein, darunter gestaffelte Speicherschutzmechanismen, die eine differenzierte Behandlung von Container-Speicher basierend auf QoS-Klassen ermöglichen. Neu sind auch Observabilitätsmetriken und Warnungen für ältere Kernel-Versionen.
Kubernetes 1.36 bringt Verbesserungen für die Memory Quality of Service (QoS) ein, die ursprünglich in Version 1.22 eingeführt wurden. Die neuen Funktionen zielen darauf ab, die Kontrolle über den Speicherverbrauch von Containern zu optimieren und die Effizienz der Ressourcennutzung zu steigern. Besonders hervorzuheben ist die Trennung von Throttling und Reservierung, was eine flexiblere Handhabung der Speicherressourcen ermöglicht.
Die neue memoryReservationPolicy-Option erlaubt es, die Speichernutzung gezielt zu steuern. Bei der Einstellung „TieredReservation“ wird der Speicher basierend auf der QoS-Klasse des Pods reserviert. So erhalten „Guaranteed“-Pods eine harte Schutzgarantie durch memory.min, während „Burstable“-Pods eine weiche Schutzgarantie über memory.low erhalten. „BestEffort“-Pods hingegen haben keinen Schutz und deren Speicher ist vollständig reclaimable.
Ein Beispiel verdeutlicht diese Änderungen: Ein „Guaranteed“-Pod, der 512 MiB Speicher anfordert, erhält eine Garantie, dass dieser Speicher nicht zurückgefordert wird. Im Gegensatz dazu kann der Speicher eines „Burstable“-Pods unter extremen Druckbedingungen zurückgefordert werden, was in früheren Versionen nicht möglich war, da dort memory.min für alle Container mit einer Speicherauslastung gesetzt wurde.
Zusätzlich wurden Observabilitätsmetriken in die kubelet-API integriert. Diese Metriken ermöglichen eine bessere Kapazitätsplanung, indem sie die Gesamtmenge des reservierten Speichers für „Guaranteed“- und „Burstable“-Pods bereitstellen. Diese Informationen sind entscheidend für die Überwachung und Optimierung der Ressourcennutzung.
Ein weiterer wichtiger Aspekt dieser Version ist die Überprüfung der Kernel-Version. Bei Verwendung von memory.high-Throttling auf älteren Kernels (vor Version 5.9) kann es zu Problemen kommen. Kubernetes 1.36 führt eine Warnung ein, wenn der Kernel älter ist, um Administratoren auf potenzielle Probleme hinzuweisen.
Die Implementierung der Memory QoS in Kubernetes 1.36 nutzt vier Hauptschnittstellen des cgroup v2-Speichercontrollers: memory.max, memory.min, memory.low und memory.high. Diese Schnittstellen ermöglichen eine präzise Steuerung der Speichernutzung auf Basis der QoS-Klassen. Die Änderungen an der Speicherkonfiguration, insbesondere die Einführung der gestaffelten Reservierung, verbessern die Ressourcennutzung und verringern das Risiko von Out-of-Memory (OOM)-Situationen, was für viele Produktionsumgebungen von großer Bedeutung ist.
Kubernetes 1.36 stellt einen bedeutenden Schritt in der Entwicklung der Memory QoS dar und bietet neue Möglichkeiten zur Optimierung der Speichernutzung. Die neuen Funktionen werden es DevOps-Teams ermöglichen, ihre Anwendungen effizienter zu betreiben und die Zuverlässigkeit der Systeme zu erhöhen. Die kontinuierliche Verbesserung der Speicherverwaltung wird entscheidend für die Skalierbarkeit und Stabilität von Cloud-nativen Anwendungen sein.
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 Integration mehrerer CNCF-Projekte in Produktionsumgebungen kann erhebliche versteckte …
TL;DR Die Implementierung eines GPU-Autoscalers für Kubernetes mithilfe von KEDA ermöglicht es, …
TL;DR Kubernetes v1.36 bringt bedeutende Fortschritte im Bereich des workload-bewussten Schedulings, …