Wie die neueste Kubernetes-Version jetzt KI-Workloads bewältigt – und mehr
Kubernetes 1.31 behebt nicht nur die Probleme der Containersoftware mit KI- und ML-Jobs, sondern bietet auch mehrere wichtige Sicherheitsverbesserungen.
Kubernetes, das Container-Management-Orchestrierungssystem, hat sich für die moderne Datenverarbeitung als unverzichtbar erwiesen, mit Ausnahme eines Bereichs: künstliche Intelligenz (KI) und maschinelles Lernen (ML). Das Problem: KI/ML erfordert erhebliche CPU-, Speicher- und GPU-Ressourcen, die auf Kubernetes nicht einfach zu verwalten sind.
Jetzt geht die Cloud Native Computing Foundation (CNCF) mit der neuesten Kubernetes-Version – Kubernetes 1.31, Elli – diese Probleme an.
Die verbesserten KI-Funktionen von Elli beginnen mit der Alpha-Unterstützung für Bilder und Artefakte der Open Container Initiative (OCI) als native Volumenquelle. Das klingt vielleicht nicht nach viel, aber es ermöglicht Entwicklern, große Sprachmodelle (LLM) genauso einfach auszutauschen wie gewöhnliche Container-Images.
Elli bringt außerdem eine aktualisierte API und ein Design für die dynamische Ressourcenzuweisung in Kubernetes ein. Diese Funktion wird dazu beitragen, den Zugriff auf und die Verwaltung von Hardwarebeschleunigern wie GPUs zu standardisieren, die für KI und ML unerlässlich sind. Es vereinfacht auch die Implementierung von Funktionen wie Cluster-Autoscaling, was wiederum die Ausführung von KI- und ML-Jobs auf Kubernetes erleichtert.
In der Vergangenheit verfügte Kubernetes über mehrere Möglichkeiten, auf die zugrunde liegende Hardware eines Hosts zuzugreifen. Die aktualisierte dynamische Ressourcenzuteilung (DRA) bietet eine einfachere Möglichkeit, auf Systemressourcen zuzugreifen. Der alte Stil, der einen DRA-Treibercontroller verwendet, wird weiterhin über „klassisches DRA“ unterstützt.
Kubernetes lässt die KI hinter sich und unterstützt jetzt auch vollständig AppArmor, ein Linux-Kernel-Sicherheitsmodul, das es Systemadministratoren ermöglicht, die Funktionen von Programmen mit programmspezifischen Profilen einzuschränken. Diese Funktion ist allgemein verfügbar und ermöglicht es Benutzern, AppArmor-Profile für Container direkt über die Kubernetes-API festzulegen. Bei ordnungsgemäßer Implementierung trägt die AppArmour-Unterstützung dazu bei, Kubernetes-Cluster und -Workloads sicherer zu machen.
An anderer Stelle im Sicherheitsbereich können Administratoren mithilfe einer neuen optionalen Funktion die Endpunkte so konfigurieren, dass anonyme Zugriffsanfragen blockiert werden können. Dies trägt dazu bei, Cluster vor Fehlkonfigurationen der rollenbasierten Zugriffskontrolle (Role Based Access Control, RBAC) zu schützen, die andernfalls anonymen Benutzern umfassenden Zugriff auf den Cluster gewähren könnten.
Als sich ständig weiterentwickelndes Open-Source-Programm optimiert und modernisiert Kubernetes 1.31 auch weiterhin seine Codebasis, indem es veraltete Funktionen entfernt. Dazu gehört:
- Entfernung von In-Tree-Cloud-Anbieterintegrationen: Kubernetes 1.31 schließt einen Prozess ab, der mit Version 1.26 begann, und entfernt alle In-Tree-Cloud-Anbieterintegrationen. Dieser Schritt ist Teil der laufenden Bemühungen, sicherzustellen, dass Kubernetes eine herstellerneutrale Plattform bleibt. Sie können Ihre Kubernetes-Cluster weiterhin bei einem bestimmten Cloud-Anbieter integrieren. Dies ist jedoch nicht innerhalb von Kubernetes möglich. Sie müssen den empfohlenen Ansatz über die externe Integration verwenden.
- Veraltung von Nicht-CSI-Volume-Limit-Plugins: Mit der Version werden alle Nicht-CSI-Volume-Limit-Scheduler-Plugins eingestellt und stehen im Einklang mit der Strategie von Kubernetes, für alle speicherbezogenen Funktionen auf das Container Storage Interface (CSI) umzusteigen.
- Veraltung von Cgroups v1: Cgroups ist eine Linux-Kernel-Funktion, mit der Sie Systemressourcen zwischen Prozessen zuweisen, priorisieren und verwalten können. Von nun an sollten Sie cgroups v2 verwenden.
Alles in allem geht es bei dieser Veröffentlichung um weit mehr als nur darum, Kubernetes KI-freundlich zu machen. Angelos Kolaitis, ein leitender Software-Ingenieur und Teamleiter von Canonical für die Kubernetes-Version 1.31, sagte, dass es bei dieser neuen Version darum geht, „die Komplexität und die umsetzungsspezifischen Details aus dem Code von Kubernetes zu entfernen, Kubernetes auf den gewünschten Zustand zu konzentrieren und alles zu belassen.“ der Implementierungen, alle zusätzlichen Quellen außerhalb davon.
Über die neuen Funktionen hinaus sagte Kolaitis: „Sie müssen nichts tun, aber Kubernetes wird zusätzliche Schritte unternehmen, um sicherzustellen, dass Ihre Workloads laufen, zuverlässig sind und Sie sich darauf verlassen können, dass Ihre Produktionsdienste nicht ausfallen.“ ."
Neue Funktionen sind schön, aber Stabilität ist Gold wert. Allein aus diesem Grund empfehle ich, eher früher als später ein Update auf Kubernetes 1.31 auszuprobieren.