Entdecken Sie, wie Kubernetes die Bereitstellung und Skalierung von KI-Modellen automatisiert. Erfahren Sie, wie Sie Ultralytics auf K8s für leistungsstarke Computer Vision orchestrieren können.
Kubernetes, oft auch als K8s bezeichnet, ist eine Open-Source-Plattform, die zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen entwickelt wurde. Ursprünglich von Google entwickelt Google heute von der Cloud Native Computing Foundation (CNCF) gepflegt, hat sich Kubernetes zum Standard für die Orchestrierung von Software in der Cloud entwickelt. Im Zusammenhang mit künstlicher Intelligenz (KI) und maschinellem Lernen (ML) dient es als kritische Infrastruktur-Schicht, die es Entwicklerteams ermöglicht, komplexe Workflows zu verwalten, vom verteilten Training bis hin zur hochverfügbaren Produktionsinferenz. Durch die Abstraktion der zugrunde liegenden Hardware stellt Kubernetes sicher, dass Anwendungen zuverlässig und effizient ausgeführt werden, unabhängig davon, ob sie vor Ort oder über öffentliche Cloud-Anbieter gehostet werden.
Im Kern basiert Kubernetes auf einer Cluster-Architektur, die aus einer Reihe von Worker-Maschinen besteht, die als Knoten bezeichnet werden. Diese Knoten führen Containerisierungs-Workloads aus, während eine Steuerungsebene den Gesamtzustand des Clusters verwaltet. Die kleinste einsetzbare Einheit in Kubernetes ist ein „Pod“, der einen oder mehrere Container umfasst, die Speicher- und Netzwerkressourcen gemeinsam nutzen. Diese Abstraktion ist für Computer-Vision-Anwendungen von entscheidender Bedeutung, da sie Entwicklern ermöglicht, Abhängigkeiten – wie bestimmte CUDA für Grafikprozessoren (GPUs)– in eine konsistente Umgebung zu verpacken. Große Cloud-Dienste wie Amazon Elastic Kubernetes Service (EKS), Azure Kubernetes Service (AKS) und Google Engine (GKE) bieten verwaltete Versionen dieser Architektur an, was den Wartungsaufwand für Data-Science-Teams vereinfacht.
Der Hauptnutzen von Kubernetes im Bereich Machine Learning Operations (MLOps) liegt in seiner Fähigkeit, dynamische Workloads zu verarbeiten. KI-Modelle erfordern während des Trainings oft enorme Rechenleistung und während der Bereitstellung eine geringe Inferenzlatenz.
Kubernetes ist das Rückgrat für viele groß angelegte KI-Implementierungen in verschiedenen Branchen:
Ein häufiger Punkt der Verwirrung ist die Beziehung zwischen Kubernetes und Docker. Sie sind keine Konkurrenten, sondern ergänzende Technologien. Docker ist ein Tool zum Erstellen und Ausführen einzelner Container (zum Verpacken der Anwendung), während Kubernetes ein Tool für die Verwaltung einer Flotte dieser Container auf mehreren Maschinen ist. Mit Docker erstellen Sie Ihre Modellgewichte und Ihren Code in einem Image und verwenden dann Kubernetes, um zu bestimmen, wo, wann und wie viele Kopien dieses Images in der Produktion ausgeführt werden.
Um ein Modell auf Kubernetes bereitzustellen, beginnen Entwickler in der Regel mit einem Python , das als Einstiegspunkt für den Container dient. Der folgende Code zeigt eine einfache Inferenzaufgabe unter Verwendung des Ultralytics . Dieses Skript würde innerhalb eines Pods ausgeführt werden 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.")
Das Kubernetes-Ökosystem umfasst eine Vielzahl von Tools, die speziell für die Datenwissenschaft entwickelt wurden. Kubeflow ist ein beliebtes Toolkit, das die Bereitstellung von ML-Workflows auf Kubernetes einfach, portabel und skalierbar macht. Zur Überwachung des Cluster-Zustands und der Anwendungsmetriken verlassen sich Ingenieure häufig auf Prometheus. Um die Komplexität des Trainings und der Bereitstellung von Modellen in diesen Umgebungen weiter zu vereinfachen, bietet die Ultralytics eine einheitliche Schnittstelle, die die Verwaltung von Datensätzen und das Modelltraining automatisiert und es Benutzern ermöglicht, Modelle zu exportieren, die für Cloud-Computing-Cluster bereit sind. Darüber hinaus helfen Paketmanager wie Helm durch wiederverwendbare Charts bei der Verwaltung komplexer Kubernetes-Anwendungen.