Glossar

Kubernetes

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

Kubernetes, oft abgekürzt als K8s, ist eine Open-Source-Plattform für die Container-Orchestrierung, die die Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen automatisiert. Ursprünglich von Google entwickelt und jetzt von der Cloud Native Computing Foundation (CNCF) gepflegt, bietet Kubernetes ein robustes Framework für den Betrieb von robusten, verteilten Systemen. Im Zusammenhang mit künstlicher Intelligenz (KI) und maschinellem Lernen (ML) ist es zu einem unverzichtbaren Werkzeug für die Verwaltung des gesamten Lebenszyklus von ML-Modellen geworden, vom Training bis zur Bereitstellung in Produktionsumgebungen.

Wie Kubernetes funktioniert

Kubernetes wird auf einem Cluster von Maschinen betrieben, bei denen es sich um physische Server oder virtuelle Maschinen handeln kann, die sich vor Ort oder in der Cloud befinden. Zu den Hauptkomponenten gehören:

  • Cluster: Eine Gruppe von Knoten (Arbeitsmaschinen), die containerisierte Anwendungen ausführen.
  • Knotenpunkt: Ein Arbeitsrechner in einem Kubernetes-Cluster. Auf jedem Knoten läuft ein Kubelet, ein Agent zur Verwaltung des Knotens und zur Kommunikation mit der Steuerungsebene.
  • Pod: Die kleinste und einfachste Einheit im Kubernetes-Objektmodell. Ein Pod stellt eine einzelne Instanz eines laufenden Prozesses in einem Cluster dar und kann einen oder mehrere Container, z. B. Docker-Container, enthalten.
  • Bereitstellung: Verwaltet eine Reihe von Replikations-Pods und stellt sicher, dass eine bestimmte Anzahl von ihnen jederzeit läuft. Aktualisierungen und Rollbacks werden automatisch durchgeführt.

Durch die Abstraktion der zugrundeliegenden Hardware ermöglicht Kubernetes Entwicklern und MLOps-Ingenieuren, den gewünschten Zustand ihrer Anwendung zu definieren, und es arbeitet daran, diesen Zustand aufrechtzuerhalten, indem es Ausfälle und Skalierungsanforderungen automatisch behandelt. Weitere Informationen finden Sie in der offiziellen Kubernetes-Dokumentation.

Kubernetes in KI und maschinellem Lernen

Kubernetes ist besonders leistungsfähig für Machine Learning Operations (MLOps), da es viele Herausforderungen im Zusammenhang mit dem Aufbau und der Bereitstellung von KI-Systemen im großen Maßstab bewältigt. Seine Fähigkeit, Ressourcen effizient zu verwalten, macht es ideal für ressourcenintensive Aufgaben wie die Modellschulung. Kubernetes kann Trainingsaufgaben über mehrere GPUs und Knoten skalieren und so die Trainingszeit erheblich reduzieren.

Kubernetes gewährleistet eine hohe Verfügbarkeit und Skalierbarkeit für Inferenzen. Hier sind ein paar Beispiele aus der Praxis:

  1. Skalierbarer Objekterkennungsdienst: Ein Unternehmen setzt ein Ultralytics YOLO11-Modell für die Echtzeit-Objekterkennung als Webdienst ein. Das Modell ist in einem Container verpackt. Mithilfe von Kubernetes kann das Unternehmen die Anzahl der Inferenz-Pods je nach eingehendem Datenverkehr automatisch nach oben oder unten skalieren. Fällt ein Knoten aus, verschiebt Kubernetes die Pods automatisch auf gesunde Knoten und stellt so sicher, dass der Dienst ohne manuelle Eingriffe verfügbar bleibt. Dies ist ein gängiges Muster für die Bereitstellung von Modellen in intelligenten Überwachungssystemen.
  2. Komplexe NLP-Pipeline als Microservices: Ein Team erstellt eine NLP-Anwendung (Natural Language Processing), die mehrere Schritte umfasst: Textvorverarbeitung, Stimmungsanalyse und Erkennung benannter Entitäten. Jede Komponente ist ein separater Microservice, der unabhängig voneinander containerisiert wird. Kubernetes orchestriert diese Dienste, verwaltet ihre Vernetzung und ermöglicht, dass jeder Teil unabhängig aktualisiert und skaliert werden kann. Diese Architektur bietet Flexibilität und Ausfallsicherheit für komplexe KI-gesteuerte Anwendungen.

Kubernetes im Vergleich zu verwandten Technologien

  • Kubernetes vs. Docker: Docker ist ein Tool zum Erstellen und Ausführen einzelner Container. Kubernetes ist ein Orchestrator für Container, der Tausende von Containern auf vielen Rechnern verwaltet. Sie sind keine Konkurrenten, sondern arbeiten zusammen; Sie erstellen Container-Images mit Docker und verwalten sie dann mit Kubernetes. Sie können mit den Grundlagen beginnen, indem Sie dem Docker Quickstart Guide folgen.
  • Kubernetes vs. Serverless Computing: Serverlose Plattformen wie AWS Lambda abstrahieren von der gesamten Serververwaltung. Im Gegensatz dazu bietet Kubernetes mehr Kontrolle über die Infrastruktur und eignet sich daher besser für langlaufende oder zustandsabhängige Anwendungen. Während Serverless für ereignisgesteuerte Funktionen einfacher ist, können Serverless-Frameworks mit Tools wie Knative auf Kubernetes ausgeführt werden.

Werkzeuge und Ökosystem

Das Kubernetes-Ökosystem ist riesig und umfasst viele Tools zur Erweiterung der Funktionalität:

  • Helm: Helm wird oft als Paketmanager für Kubernetes bezeichnet und hilft Ihnen bei der Verwaltung von Kubernetes-Anwendungen.
  • Prometheus und Grafana: Eine beliebte Kombination für die Überwachung von Kubernetes-Clustern und Anwendungen.
  • Cloud-Anbieter-Integrationen: Große Cloud-Anbieter bieten verwaltete Kubernetes-Dienste an, wie Google Kubernetes Engine (GKE), Amazon Elastic Kubernetes Service (EKS) und Azure Kubernetes Service (AKS), die die Einrichtung und Wartung von Clustern vereinfachen.
  • ML-Plattformen: Tools wie Kubeflow bauen auf Kubernetes auf, um ML-spezifische Workflows für Pipelines, Training und Bereitstellung bereitzustellen. Plattformen wie Ultralytics HUB rationalisieren die MLOps-Pipeline und abstrahieren oft die Komplexität von Kubernetes, um die Bereitstellung von Modellen zu erleichtern.

Werden Sie Mitglied der Ultralytics-Gemeinschaft

Beteiligen Sie sich an der Zukunft der KI. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten
Link in die Zwischenablage kopiert