Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

Kubernetes

Entdecken Sie, wie Kubernetes KI/ML-Workloads mit skalierbarer Modellbereitstellung, verteiltem Training und effizientem Ressourcenmanagement optimiert.

Kubernetes, häufig abgekürzt als K8s, ist ein Open-Source-Container-Orchestrierungssystem, das die Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen automatisiert. Ursprünglich wurde es von Google entwickelt und wird nun der Cloud Native Computing Foundation (CNCF), hat sich Kubernetes zum zum Industriestandard für den Betrieb stabiler, verteilter Softwaresysteme entwickelt. In den schnell fortschreitenden Bereichen der Künstliche Intelligenz (KI) und Maschinelles Lernen (ML), dient es als grundlegende Infrastrukturschicht, die es Ingenieurteams ermöglicht, den gesamten Lebenszyklus komplexer Lebenszyklus komplexer Modelle von der experimentellen Entwicklung bis hin zur Produktion in großem Maßstab zu verwalten.

Kernkonzepte und Architektur

Im Kern verwaltet Kubernetes einen Cluster von Computern, die als Nodes bezeichnet werden und auf denen containerisierte Arbeitslasten ausgeführt werden. Es stützt sich stark auf die Containerisierung - eineTechnologie Technologie, die Code zusammen mit seinen Abhängigkeiten verpackt, um sicherzustellen, dass Anwendungen in verschiedenen Umgebungen. Kubernetes führt Abstraktionen wie "Pods" ein, die die kleinsten bereitstellbaren Einheiten darstellen, und "Deployments", die den gewünschten Zustand einer Anwendung aufrechterhalten. Durch die Entkopplung der Software von der der zugrunde liegenden Hardware ermöglicht es Computer-Vision-Ingenieure sich auf die Modellleistung Leistung statt auf die Serverwartung zu konzentrieren, indem sie verwaltete Dienste wie Amazon EKS oder Google Kubernetes Engine (GKE).

Kubernetes in KI und maschinellem Lernen

Für Machine Learning Operations (MLOps) ist Kubernetes unverzichtbar, denn es löst die kritische Herausforderung der Skalierbarkeit löst. Moderne KI-Workloads, insbesondere solche mit Deep Learning, erfordern erhebliche Rechenressourcen. Kubernetes erleichtert verteiltes Training durch intelligentes Trainingsaufgaben über mehrere mit Grafikprozessoren ausgestattete Knoten Grafikverarbeitungseinheiten (GPUs) ausgestattet sind. Während der Modellbereitstellungsphase gewährleistet K8s K8s eine hohe Verfügbarkeit der Inferenz-APIs und skaliert die Anzahl der laufenden Pods automatisch nach oben oder unten, je nach Echtzeit Echtzeit-Verkehrsanforderungen, wodurch sowohl die Leistung als auch die Kosten optimiert werden.

Anwendungsfälle in der Praxis

  1. Intelligente Verkehrsüberwachung in der Stadt: Eine Stadtverwaltung setzt ein Ultralytics YOLO11 Modell, um den Verkehrsfluss zu analysieren und Verkehrsüberlastung in Echtzeit detect . Die Anwendung ist containerisiert und wird auf einem Kubernetes-Cluster orchestriert. Unter Verwendung von der Horizontal Pod Autoscaler, erkennt das System Spitzen im Videostrom während der Stoßzeiten und stellt automatisch zusätzliche Inferenz-Pods Pods. Dies gewährleistet ununterbrochene Objekterkennungsdienste, ohne dass eine manuelle Serverbereitstellung.
  2. Visuelle Suche im E-Commerce: Ein Online-Händler implementiert ein Empfehlungssystem, das es den Nutzern erlaubt Produkte anhand von Bildern zu suchen. Die Pipeline besteht aus verschiedenen Microservices für die Bildvorverarbeitung, die Merkmalsextraktion Extraktion und Vektordatenbank-Suche. Kubernetes orchestriert diese Komponenten, so dass das Feature-Engineering-Team die Möglichkeit, das Extraktionsmodell unabhängig vom Suchindex zu aktualisieren und so die Agilität und Systemstabilität in ihrer Produktionsumgebung.

Unterscheidung verwandter Technologien

Es ist hilfreich zu verstehen, wie sich Kubernetes von anderen gängigen Infrastruktur-Tools unterscheidet:

  • Kubernetes vs. Docker: Docker ist ein Werkzeug zum Erstellen und Ausführen einzelner Container, während Kubernetes ein Orchestrator ist, der diese Container über eine Flotte von Maschinen verwaltet. Normalerweise verwenden Entwickler Docker zur Erstellung ihrer Anwendungsimages für neuronale Netze und verlassen sich dann auf Kubernetes, um sie in großem Umfang auszuführen.
  • Kubernetes vs. Serverloses Rechnen: Serverlose Plattformen wie AWS Lambda abstrahieren von der gesamten Infrastruktur abstrahiert, was sie ideal für ereignisgesteuerte Funktionen macht. Im Gegensatz dazu bietet Kubernetes granulare Kontrolle über Netzwerk, Speicher und Ressourcenzuweisung, was oft für langlaufende, zustandsabhängige Anwendungen oder komplexe Model-Serving-Architekturen.

Tools und Ökosystem

Das Kubernetes-Ökosystem ist riesig und umfasst Tools wie Helm für die Paketverwaltung und Prometheus für die Überwachung des Zustands von Clustern. Für spezialisierte ML-Workflows werden Plattformen wie Kubeflow auf Kubernetes aufgesetzt, um End-to-End-Pipelines zu optimieren. Mit Blick auf die Zukunft soll die kommende Ultralytics Diese Plattform soll diese Prozesse weiter vereinfachen und eine umfassende Umgebung für das Datenmanagement und die Modellschulung bieten, die abstrahiert die zugrunde liegende Infrastrukturkomplexität.

Beispiel: Inferenz-Skript für Containerisierung

Um ein Modell in Kubernetes bereitzustellen, benötigen Sie zunächst ein Skript, das eine Inferenz durchführt. Dieses Python demonstriert das Laden eines YOLO11 , das dann in einen Docker-Container verpackt und von K8s bereitgestellt werden kann.

from ultralytics import YOLO

# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")

# Run inference on an image source
# This script would typically run inside a Kubernetes Pod
results = model("https://ultralytics.com/images/bus.jpg")

# Print the detected class names
for result in results:
    for cls_id in result.boxes.cls:
        print(f"Detected: {result.names[int(cls_id)]}")

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