Glossar

Kubernetes

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

Trainiere YOLO Modelle einfach
mit Ultralytics HUB

Mehr erfahren

Kubernetes, oft abgekürzt als K8s, ist eine Open-Source-Plattform zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von Container-Anwendungen. Ursprünglich entwickelt von Google entwickelt und wird heute von der Cloud Native Computing Foundation (CNCF) gepflegt. Kubernetes bietet ein robustes Framework für den robusten Betrieb verteilter Systeme. Für diejenigen, die im Bereich der künstlichen Intelligenz (KI) und des maschinellen Lernens (ML) arbeiten, bietet Kubernetes leistungsstarke Werkzeuge, um den komplexen Lebenszyklus von Modellen zu verwalten, vom Training über die Bereitstellung bis hin zur Inferenz. Es hilft, die Lücke zwischen der Entwicklung von ML-Modellen und deren zuverlässigem Betrieb in Produktionsumgebungen zu schließen.

Kernkonzepte vereinfacht

Kubernetes orchestriert Container, das sind leichtgewichtige, eigenständige Pakete, die Software und ihre Abhängigkeiten enthalten. Die wichtigsten Konzepte sind:

  • Pods: Die kleinsten einsatzfähigen Einheiten in Kubernetes, die in der Regel einen oder mehrere Container enthalten, die sich Ressourcen und Netzwerk teilen. Betrachte einen Pod als Hülle für deine ML-Anwendung oder deinen Inferenzserver-Container.
  • Knotenpunkte: Worker-Maschinen (virtuell oder physisch), auf denen Pods laufen. Kubernetes verwaltet die Verteilung der Pods auf die verfügbaren Nodes.
  • Dienste: Eine Abstraktion, die einen logischen Satz von Pods und eine Richtlinie für den Zugriff auf sie definiert und oft eine stabile IP-Adresse oder einen DNS-Namen für dynamische Pods bereitstellt. Unverzichtbar für die Bereitstellung von ML-Inferenz-Endpunkten.
  • Einsätze: Beschreibe den gewünschten Zustand deiner Anwendung und verwalte ReplicaSets (Gruppen identischer Pods), um die Verfügbarkeit zu gewährleisten und Aktualisierungen durchzuführen. Nützlich für das Ausrollen neuer Modellversionen ohne Ausfallzeiten.

Das Verständnis dieser Bausteine hilft bei der Entwicklung skalierbarer und widerstandsfähiger ML-Systeme.

Relevanz in KI und maschinellem Lernen

Kubernetes hat sich aufgrund mehrerer Vorteile zu einem Eckpfeiler moderner Machine Learning Operations (MLOps) entwickelt:

  • Skalierbarkeit: ML-Aufgaben wie das Trainieren großer Modelle oder die Bearbeitung von Inferenzanfragen haben oft einen schwankenden Ressourcenbedarf. Kubernetes kann die Anzahl der Container (Pods) je nach Auslastung automatisch nach oben oder unten skalieren und so eine effiziente Nutzung von Ressourcen wie GPUs sicherstellen.
  • Ressourcenmanagement: Es ermöglicht eine feinkörnige Kontrolle über CPU und Speicherzuweisung für Container, um Ressourcenkonflikte zu vermeiden und die Leistung sicherzustellen, was besonders wichtig ist, wenn teure GPU für mehrere Experimente oder Dienste verwaltet werden.
  • Portabilität und Konsistenz: Kubernetes bietet eine konsistente Umgebung über verschiedene Infrastrukturen hinweg, sei es auf lokalen Servern oder auf verschiedenen Cloud-Computing-Plattformen wie Amazon EKS, Google GKE oder Azure AKS. Das vereinfacht den Wechsel von ML-Workflows zwischen Entwicklung, Test und Produktion. Du kannst oft mit einem Docker-Setup beginnen und mit Kubernetes aufstocken.
  • Automatisierung und Orchestrierung: Sie automatisiert komplexe Aufgaben wie Service Discovery, Load Balancing, Self-Healing (Neustart ausgefallener Container) und Konfigurationsmanagement und reduziert so den manuellen Aufwand für ML-Teams.

Real-World AI/ML Anwendungen

  1. Verteiltes Modelltraining: Das Training großer Deep-Learning-Modelle (DL), wie z. B. komplexer Ultralytics YOLO Varianten für die Objekterkennung, erfordert oft eine immense Rechenleistung. Kubernetes kann einen Cluster von Rechnern für verteiltes Training verwalten, indem Frameworks wie Kubeflow oder native Integrationen mit PyTorch oder TensorFlow. Es kümmert sich um die Planung von Trainingsaufträgen, die Verwaltung des Datenzugriffs und die effiziente Zuweisung von GPUs auf den Knoten.
  2. Skalierbare Inferenzdienste: Der Einsatz von ML-Modellen, z. B. für Echtzeit-Inferenzen, erfordert hohe Verfügbarkeit und niedrige Latenzzeiten. Kubernetes kann Inferenzserver (z. B. mit dem NVIDIA Triton Inference Server, der mit Ultralytics integriert ist - siehe Triton ) hinter einem Load Balancer hosten. Er skaliert die Anzahl der Inferenzserver-Pods automatisch auf der Grundlage des eingehenden Datenverkehrs und gewährleistet so die Reaktionsfähigkeit auch bei Spitzenlasten für Aufgaben wie Bildklassifizierung oder natürliche Sprachverarbeitung (NLP).

Kubernetes vs. Verwandte Technologien

  • Kubernetes vs. Docker: Docker ist ein Tool zum Erstellen, Ausliefern und Ausführen einzelner Container(Containerisierung). Kubernetes ist ein Orchestrator für Container, der potenziell Tausende von Containern auf vielen Rechnern verwaltet. Sie arbeiten zusammen: Normalerweise erstellst du Container-Images mit Docker und verteilst und verwaltest sie dann mit Kubernetes. Im Docker Quickstart Guide findest du die Grundlagen zu Containern.
  • Kubernetes vs. Serverless Computing: Serverlose Plattformen (wie AWS Lambda oder Google Cloud Functions) abstrahieren die Serververwaltung vollständig und konzentrieren sich auf ereignisgesteuerte Funktionen. Kubernetes bietet mehr Kontrolle über die zugrunde liegende Infrastruktur und eignet sich besser für langlaufende Anwendungen oder komplexe zustandsabhängige Dienste, obwohl auch serverlose Frameworks auf Kubernetes laufen können (z. B. Knative).

Werkzeuge und Ökosystem

Das Kubernetes-Ökosystem umfasst viele Tools, die die Verwaltung vereinfachen:

  • Helm: Ein Paketmanager für Kubernetes, der bei der Definition, Installation und Aktualisierung komplexer Anwendungen hilft.
  • Prometheus & Grafana: Beliebte Open-Source-Tools zur Überwachung von Kubernetes-Clustern und -Anwendungen.
  • Integration von Cloud-Anbietern: Verwaltete Kubernetes-Dienste (EKS, GKE, AKS) vereinfachen die Einrichtung und Wartung von Clustern.
  • ML-Plattformen: Tools wie Kubeflow bauen auf Kubernetes auf, um ML-spezifische Workflows bereitzustellen. Plattformen wie Ultralytics HUB zielen darauf ab, die Deployment-Pipeline zu vereinfachen, indem sie manchmal die Komplexität von Kubernetes abstrahieren, um die Bereitstellung von Modellen zu erleichtern.

Kubernetes bietet eine leistungsstarke Grundlage für den Aufbau, die Bereitstellung und die Verwaltung skalierbarer und zuverlässiger KI/ML-Anwendungen in verschiedenen Umgebungen und ist damit eine wichtige Fähigkeit in der MLOps-Landschaft.

Alles lesen