Einen validierten Kubernetes-Runtime für NVIDIA Dynamo erstellen
NVIDIA AI Cluster Runtime (AICR) integriert NVIDIA Dynamo in überprüfte Vorgehensweisen, um die Bereitstellung in Kubernetes zu vereinfachen. Dieser Ansatz stellt sicher, dass GPU-Treiber, dynamische Ressourcenzuweisung sowie Gruppenschichtung zusammenarbeiten, wodurch Teams effizient von der Modellkonfiguration zu einem funktionsfähigen Inferenz-Endpunkt übergehen können.
Tags
Kurze Zusammenfassung
NVIDIA AI Cluster Runtime (AICR) integriert NVIDIA Dynamo in überprüfte Vorgehensweisen, um die Bereitstellung in Kubernetes zu vereinfachen. Dieser Ansatz stellt sicher, dass GPU-Treiber, dynamische Ressourcenzuweisung sowie Gruppenschichtung zusammenarbeiten, wodurch Teams effizient von der Modellkonfiguration zu einem funktionsfähigen Inferenz-Endpunkt übergehen können.
Erstellung einer validierten Kubernetes-Runtime für NVIDIA Dynamo
Teams, die KI-Anwendungen entwickeln, benötigen einen wiederholbaren Weg von der Modellkonfiguration bis zu einem funktionsfähigen Inferenz-Endpunkt. NVIDIA Dynamo ist ein verteiltes Inferenzframework, das darauf ausgelegt ist, den Modellbetrieb über GPU-Arbeitsprozesse zu koordinieren. Die Bereitstellung auf Kubernetes ist jedoch nur der erste Schritt. Eine erfolgreiche Produktivbereitstellung erfordert, dass GPU-Treiber, Ressourcenzuweisung, Scheduling, Netzwerk und Monitoring als kohärentes Ganzes funktionieren. Die Bewältigung dieser Abhängigkeiten bindet oft Zeit, die sonst für das Testen des Modellverhaltens und der Leistung beim Servieren verwendet werden könnte.
Um diese Komplexität in den Griff zu bekommen, stellt die NVIDIA DSX AI Factory Platform die NVIDIA AI Cluster Runtime (AICR) vor. Diese Plattform packt NVIDIA Dynamo sowie seine unterstützende Infrastruktur in validierte Rezepte zusammen. Jedes Rezept definiert eine spezifische Konfiguration für eine Umgebung und eine Arbeitslast, einschließlich festgelegter Komponentenversionen, Kompatibilitätsbeschränkungen und Validierungschecks. AICR bietet Plattformteams eine reproduzierbare Methode zur Bereitstellung und Überprüfung der Runtime, wodurch Entwickler eine konsistente Grundlage zum Servieren von Modellen erhalten.
Warum die zugrunde liegende Runtime wichtig ist
Der Betrieb eines Modells mit Dynamo auf Kubernetes beginnt mit einem DynamoGraphDeployment, der festlegt, wie Engines wie vLLM, SGLang oder NVIDIA TensorRT LLM in Pods laufen sollen. Doch dieser Graph repräsentiert nur die oberste Schicht. Ein Produktiv-Inferenz-Cluster benötigt darunter eine robuste Runtime-Schicht, um wichtige Infrastrukturfragen zu beantworten:
- Ist der NVIDIA GPU Operator mit einer Treiberstack-Version installiert, die zu den Knoten passt?
- Stellt der Cluster GPUs über den erwarteten Dynamic Resource Allocation (DRA)-Treiber bereit?
- Kann der Scheduler GPU-Arbeitsprozesse mit der erforderlichen Topologie sowie den Semantiken des Gang-Scheduling platzieren?
- Sind Gesundheitsindikatoren der Knoten verfügbar, bevor Arbeitslasten auf einen beeinträchtigten Knoten gelangen?
- Ist der Gateway API / Endpoint Picker (EPP)-Pfad konfiguriert, wenn die Bereitstellung am Eingang Kubernetes-nativ sein soll?
AICR begegnet diesen Problemen, indem es sowohl Dynamo als auch die darauf angewiesenen Cluster-Runtime-Komponenten in eine einzige Einheit packt. AICR liefert Version 1.4.2 der dynamo-platform-Chart, die den Dynamo-Operator, Runtime-Bilder sowie Ressourcen wie die nvidia.com/v1beta1 DynamoGraphDeployment CustomResourceDefinition (CRD) enthält. Diese Version ersetzt die bisherige v1alpha1-API-Version.
Das Rezept fixiert die Komponentenversionen und speichert Konfigurationswerte, Node-Selektoren, Toleranzen, Checksummen sowie Validierungsanforderungen, um eine reproduzierbare Bereitstellung zu gewährleisten. Bei Dynamo 1.4 entdecken Frontends, Worker und andere Dienste einander über Kubernetes-Ressourcen. Daher verwendet der Standard-AICR-Kubernetes-Pfad nicht mehr NATS, und die dynamo-platform-Chart installiert es standardmäßig nicht mehr. NATS bleibt als optionale Komponente für Bereitstellungen verfügbar, die sie ausdrücklich benötigen.
Routing-Pfade und Architektur
Dynamo 1.4.2 verwendet TCP für den Anfragenfluss und ZMQ für KV-Cache-Ereignisse. Diese Architektur ermöglicht es sowohl dem nativen Dynamo Frontend Router als auch dem Gateway API Inference Extension (GAIE) / Endpoint Picker Plugin (EPP)-Path, cachebewusste Routingentscheidungen zu treffen. Die Wahl zwischen diesen Pässen hängt von der spezifischen Topologie und den Verwaltungsanforderungen der Bereitstellung ab.
Path 1: Dynamo Frontend Router
Der Standardpfad stellt ein Dynamo Frontend hinter einem Kubernetes Service zur Verfügung. Beim Betrieb mit DYN_ROUTER_MODE=kv tokenisiert das Frontend jede Anfrage, bewertet geeignete Worker anhand von Präfixüberschneidungen und aktueller Last, wählt einen Worker aus und leitet die Anfrage über den Dynamo-Anfragenfluss weiter, der standardmäßig TCP verwendet.
Dieser Path eignet sich, wenn ein Anwendungsteam einen modellspezifischen Endpoint besitzt oder ein bestehender Edge-Proxy lediglich den Traffic zum Dynamo Frontend Service weiterleiten muss. Er stellt die kleinste Topologie für die Bereitstellung und Validierung eines Dynamo-Graphen dar und gilt als die am besten bewährte Bereitstellungsoption in der Produktion. Er erfordert nicht die zusätzlichen Gateway- und EPP-Komponenten, die im Path 2. verwendet werden.
In dieser Konfiguration wählt das Dynamo Frontend einen vLLM-Worker auf der Grundlage von KV-Cache-Überschneidungen und Last aus. Anfragen nutzen das TCP-Anfrageprotokoll, während KV-Cache-Ereignisse des Workers über das durch ZMQ unterstützte Ereignisprotokoll beim Frontend ankommen.
Pfad 2: Gateway API Inference Extension und Dynamo EPP
Der zweite Pfad integriert Dynamo mit der Gateway API sowie der Gateway API Inference Extension (GAIE). Im AICR-Beispiel wandelt agentgateway ein HTTPRoute in ein InferencePool um. Der Dynamo-Operator erstellt dieses InferencePool aus dem DynamoGraphDeployment; sein Selektor identifiziert geeignete Worker-Pods, während sein endpointPickerRef den Dynamo EPP Service kennzeichnet.
Die Gateway-Instanz ruft den Dynamo EPP über die Endpoint-Selektions-Schnittstelle von GAIE auf. Der EPP tokenisiert die Anfrage und verwendet Dylamos KV-Router, um einen Endpunkt auszuwählen. Er gibt die Auswahl- sowie Routing-Metadaten an die Gateway-Implementierung zurück, die als eigentlicher HTTP-Proxy fungiert. In diesem Modus enthält jeder routbare Worker-Pod ein Dynamo Frontend Sidecar, das die Anfrage von der Gateway-Instanz entgegennimmt und an den lokalen Worker-Container weiterleitet. Das Frontend läuft unter Verwendung von --router-mode direct und wendet die EPP-Selektion an, ohne erneut zu routen.
Dieser Pfad eignet sich, wenn das Plattformteam gemeinsame Kubernetes-Ingress-Lösungen verwalten muss und die Auswahl der Modell-Endpunkte sowie Zeitlimits, Wiederholungsversuche und Fallback-Mechanismen über Gateway API-Mechanismen konfigurieren muss. Beide Routing-Ansätze können hinter einer Gateway API HTTPRoute funktionieren. Der Unterschied liegt darin, welche Komponente den Transport zum Worker steuert: das Dynamo Frontend oder die Gateway-Instanz selbst.
Der AICR-Rezept-Fluss
AICR trennt die Laufzeit-Einrichtung von der Anwendungsverteilung durch einen fünfstufigen Fluss, der darauf abzielt, Stabilität und Korrektheit vor dem Einrichten der Anwendungslasten zu gewährleisten.
Schritt 1: Snapshot des Clusters erstellen
Der Prozess beginnt mit der Erfassung des aktuellen Zustands des Clusters, um eine Grundlage für die Verteilung zu schaffen.
Schritt 2: Dynamo-Inference-Rezept generieren
Mithilfe des Snapshots erstellt das System ein auf die spezifischen Umgebungs- und Lastanforderungen zugeschnittenes Dynamo-Inference-Rezept.
Optionaler Offline-Check
Teams können einen optionalen Offline-Check durchführen, um die Konfiguration des Rezepts vor dem Weiterverfahren zur Bereitstellung zu überprüfen.
Schritt 3: Erstellen des Runtime-Bundles
Das validierte Rezept wird in einen Bereitstellungsbundle umgewandelt, wobei alle notwendigen Ressourcen und Konfigurationen vorbereitet werden.
Schritt 4: Bereitstellung des Runtimes
Der Runtime wird mithilfe von Tools wie Helmfile oder GitOps bereitgestellt. In diesem Schritt wird die Konfiguration auf den Cluster angewendet, wobei der Operator, die Images sowie die unterstützende Infrastruktur installiert werden.
Schritt 5: Überprüfung des installierten Runtimes
Bevor Anwendungsworkloads installiert werden, muss der installierte Runtime überprüft werden, um sicherzustellen, dass alle Abhängigkeiten erfüllt sind und das System für die Inferenz bereit ist.
Welche Überprüfungen erfolgen bei der AICR-Validierung
Die AICR-Validierung stellt sicher, dass die Infrastruktur den strengen Anforderungen der verteilten Inferenz gerecht wird. Der Validierungsprozess prüft das Vorhandensein und die Korrektheit des NVIDIA GPU Operators, die passende Treiberschicht, die Bereitstellung von GPUs über den Dynamic Resource Allocation (DRA)-Treiber sowie die Verfügbarkeit von Signalen zum Zustand der Knoten. Zudem wird überprüft, ob der Gateway API oder der Endpoint Picker-Pfad gemäß der gewählten Routing-Topologie korrekt konfiguriert ist.
Durch die Automatisierung dieser Überprüfungen ermöglicht AICR es den Plattformteams, sich auf die Anwendungslogik statt auf das Debuggen von Infrastrukturabhängigkeiten zu konzentrieren. Dieser Ansatz unterstützt das übergeordnete Ziel der NVIDIA DSX AI Factory Platform: dem Ökosystem dabei zu helfen, effizientere AI-Fabriken zu entwerfen, zu bauen und zu betreiben.
Fazit
Der Aufbau eines validierten Kubernetes-Runtimes für NVIDIA Dynamo erfordert mehr als nur die Bereitstellung eines Modellgraphen. Es ist ein koordinierter Ansatz in Bezug auf die Infrastrukturverwaltung, die Routing-Strategie sowie die Validierung notwendig. Der NVIDIA AI Cluster Runtime (AICR) bietet das notwendige Framework, um Dynamo und seine Abhängigkeiten in reproduzierbare Rezepte zu verpacken. Egal ob der native Dynamo Frontend-Router für modellspezifische Endpunkte oder die Gateway API Inference Extension für gemeinsamen Zugriff genutzt wird – AICR sorgt dafür, dass der zugrunde liegende Runtime robust, überprüft und bereit für Produktivworkloads ist.
Für Teams, die ihre AI-Fabrikprozesse optimieren möchten, bietet die Erkundung des NVIDIA AI Cluster Runtime einen strukturierten Weg, um Infrastrukturen für Inferenz effizient zu konfigurieren und zu validieren.
Quelle: https://developer.nvidia.com/blog/build-a-validated-kubernetes-runtime-for-nvidia-dynamo



