Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

Kubernetes

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.

Kernarchitektur und Konzepte

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.

Warum Kubernetes für KI wichtig ist

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.

  • Skalierbarkeit: Kubernetes nutzt die automatische Skalierung, um Ressourcen automatisch anzupassen. Bei einem plötzlichen Anstieg des Datenverkehrs kann der Horizontal Pod Autoscaler die Anzahl der Inferenz-Pods erhöhen, um die Skalierbarkeit ohne manuelles Eingreifen aufrechtzuerhalten .
  • Ressourcenoptimierung: Die effiziente Zuweisung teurer Hardware ist von entscheidender Bedeutung. Kubernetes ermöglicht GPU fraktionierte GPU und Knotenaffinität, wodurch sichergestellt wird, dass Deep-Learning-Modelle nur dann Ressourcen verbrauchen, wenn aktive Jobs diese benötigen.
  • Resilient Deployment: Die Gewährleistung einer hohen Verfügbarkeit während der Modellbereitstellung ist unerlässlich. Wenn ein Knoten ausfällt, startet Kubernetes die betroffenen Pods automatisch auf funktionsfähigen Knoten neu und verhindert so Ausfallzeiten für kritische API-Dienste.

Anwendungsfälle in der Praxis

Kubernetes ist das Rückgrat für viele groß angelegte KI-Implementierungen in verschiedenen Branchen:

  1. Intelligentes Verkehrsmanagement in Städten: Eine Stadtverwaltung könnte Ultralytics einsetzen, um Videoaufnahmen von Tausenden von Kreuzungen zu analysieren. Mit Kubernetes kann das System die Ressourcen während der Hauptverkehrszeit dynamisch hochskalieren, um die erhöhte Objektdetektionslast zu bewältigen, und nachts herunter skalieren, um Kosten zu sparen. Dieser Ansatz ist für moderne Verkehrsmanagementsysteme von grundlegender Bedeutung.
  2. Personalisierung im E-Commerce: Online-Händler nutzen komplexe Empfehlungssysteme, die auf Mikroservices basieren. Ein Service kann die Generierung von Kandidaten übernehmen, während ein anderer das Re-Ranking verwaltet. Kubernetes koordiniert diese unterschiedlichen Services, sodass Teams das Ranking-Neuralnetzwerk unabhängig voneinander aktualisieren können, ohne das gesamte Einkaufserlebnis zu stören, was eine kontinuierliche Integration ermöglicht.

Unterscheidung zwischen Kubernetes und Docker

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.

Beispiel: Inferenz-Skript für Containerisierung

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.")

Tools und Ökosystem

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.

Werden Sie Mitglied der Ultralytics

Gestalten Sie die Zukunft der KI mit. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten