Kubernetes
Entdecke, wie Kubernetes die Bereitstellung und Skalierung von KI-Modellen automatisiert. Erfahre, wie du Ultralytics YOLO26 für leistungsstarke Bildverarbeitung auf K8s orchestrierst.
Kubernetes, häufig als K8s bezeichnet, ist eine Open-Source-Plattform zur Automatisierung der Bereitstellung, Skalierung und Verwaltung containerisierter Anwendungen. Kubernetes wurde ursprünglich von Google entwickelt und wird heute von der Cloud-Native-Computing-Stiftung (CNCF) betreut. Die Plattform hat sich zum Standard für die Orchestrierung von Software in der Cloud entwickelt. Im Kontext von Künstlicher Intelligenz (AI) und maschinellem Lernen (ML) dient Kubernetes als zentrale Infrastrukturschicht, mit der Entwicklungsteams komplexe Workflows verwalten können – vom verteilten Training bis zur hochverfügbaren Inferenz in Produktionsumgebungen. Durch die Abstraktion der zugrunde liegenden Hardware stellt Kubernetes sicher, dass Anwendungen zuverlässig und effizient ausgeführt werden, unabhängig davon, ob sie lokal oder über öffentliche Cloud-Anbieter gehostet werden.
Kernarchitektur und zentrale Konzepte#
Kubernetes basiert im Kern auf einer Clusterarchitektur, die aus einer Gruppe von Arbeitsmaschinen, den sogenannten Nodes, besteht. Diese Nodes führen Workloads zur Containerisierung aus, während eine Steuerungsebene den Gesamtzustand des Clusters verwaltet. Die kleinste bereitstellbare Einheit in Kubernetes ist ein „Pod“, der einen oder mehrere Container kapselt, die sich Speicher- und Netzwerkressourcen teilen. Diese Abstraktion ist für Anwendungen im Bereich Computer Vision besonders wichtig, da Entwickler damit Abhängigkeiten – etwa bestimmte CUDA-Bibliotheken für Grafikprozessoren (GPUs) – in eine konsistente Umgebung verpacken können. Große Cloud-Dienste wie der Amazon Kubernetes-Dienst für elastische Ressourcen (EKS), der Azure Kubernetes-Dienst (AKS) und die Google Kubernetes-Engine (GKE) bieten verwaltete Versionen dieser Architektur und verringern damit den Wartungsaufwand für Data-Science-Teams.
Warum Kubernetes für AI wichtig ist#
Der wichtigste Nutzen von Kubernetes im Bereich der Machine-Learning-Operations (MLOps) liegt in der Fähigkeit, dynamische Workloads zu verarbeiten. AI-Modelle benötigen während des Trainings häufig enorme Rechenleistung und bei der Bereitstellung eine geringe Inferenzlatenz.
- Skalierbarkeit: Kubernetes passt Ressourcen mithilfe automatischer Skalierung selbstständig an. Bei einem plötzlichen Anstieg des Datenverkehrs kann der Horizontal Pod Autoscaler die Anzahl der Inferenz-Pods erhöhen, um die Skalierbarkeit ohne manuelle Eingriffe aufrechtzuerhalten.
- Ressourcenoptimierung: Die effiziente Zuweisung teurer Hardware ist entscheidend. Kubernetes ermöglicht die anteilige gemeinsame Nutzung von GPUs und die Zuordnung zu passenden Nodes. Dadurch verbrauchen Deep-Learning-Modelle nur dann Ressourcen, wenn aktive Aufträge sie benötigen.
- Ausfallsichere Bereitstellung: Die Gewährleistung hoher Verfügbarkeit während der Modellbereitstellung ist unverzichtbar. Wenn ein Node ausfällt, startet Kubernetes die betroffenen Pods automatisch auf fehlerfreien Nodes neu und verhindert so Ausfallzeiten bei kritischen API-Diensten.
Anwendungen in der Praxis#
Kubernetes bildet das Rückgrat vieler groß angelegter AI-Implementierungen in unterschiedlichen Branchen:
-
Verkehrsmanagement in Smart Cities: Eine Kommune könnte Ultralytics YOLO26-Modelle einsetzen, um Videostreams von Tausenden Kreuzungen zu analysieren. Mit Kubernetes kann das System die Ressourcen während der Hauptverkehrszeit dynamisch hochskalieren, um das erhöhte Aufkommen bei der Objekterkennung zu bewältigen, und sie nachts zur Kostensenkung wieder reduzieren. Dieser Ansatz ist ein grundlegender Bestandteil moderner Verkehrsmanagementsysteme.
-
Personalisierung im E-Commerce: Online-Händler nutzen komplexe, auf Microservices basierende Empfehlungssysteme. Ein Dienst kann beispielsweise die Generierung von Kandidaten übernehmen, während ein anderer für das erneute Ranking zuständig ist. Kubernetes orchestriert diese voneinander getrennten Dienste. Dadurch können Teams das für das Ranking eingesetzte neuronale Netz unabhängig aktualisieren, ohne das gesamte Einkaufserlebnis zu beeinträchtigen, und so kontinuierliche Integration ermöglichen.
Kubernetes und Docker im Vergleich#
Häufig herrscht Unklarheit über das Verhältnis zwischen Kubernetes und Docker. Sie sind keine konkurrierenden, sondern sich ergänzende Technologien. Docker ist ein Werkzeug zum Erstellen und Ausführen einzelner Container, also zum Verpacken der Anwendung. Kubernetes hingegen verwaltet eine Flotte solcher Container über mehrere Maschinen hinweg. Mit Docker verpackst du deine Modellgewichte und deinen Code in ein Image und legst anschließend mit Kubernetes fest, wo, wann und wie viele Kopien dieses Images in der Produktion ausgeführt werden.
Beispiel: Inferenzskript für die Containerisierung#
Um ein Modell auf Kubernetes bereitzustellen, beginnen Entwickler typischerweise mit einem Python-Skript, das als Einstiegspunkt für den Container dient. Der folgende Code zeigt eine einfache Inferenzaufgabe mit dem Modell Ultralytics YOLO26. Dieses Skript würde innerhalb eines Pods ausgeführt und eingehende Anfragen verarbeiten.
from ultralytics import YOLO
# Load the lightweight YOLO26 model
model = YOLO("yolo26n.pt")
# Perform inference on an image source
# In a K8s pod, this would likely process API payloads
results = model("https://ultralytics.com/images/bus.jpg")
# Output the detection count for logging
print(f"Detected {len(results[0].boxes)} objects in the frame.")Werkzeuge und Ökosystem#
Das Kubernetes-Ökosystem umfasst eine große Auswahl an Werkzeugen, die auf Data Science zugeschnitten sind. Kubeflow ist ein beliebtes Toolkit, das Bereitstellungen von ML-Workflows auf Kubernetes einfach, portabel und skalierbar machen soll. Für die Überwachung des Clusterzustands und der Anwendungsmetriken setzen Ingenieure häufig auf Prometheus. Um die Komplexität des Trainings und der Bereitstellung von Modellen in diesen Umgebungen weiter zu reduzieren, bietet die Ultralytics Platform eine einheitliche Oberfläche, die die Verwaltung von Datensätzen und das Modelltraining automatisiert und es Nutzern ermöglicht, Modelle für Cloud-Computing-Cluster zu exportieren. Außerdem helfen Paketmanager wie Helm bei der Verwaltung komplexer Kubernetes-Anwendungen mithilfe wiederverwendbarer Charts.









