Docker und Kubernetes für KI: Container-Orchestrierung auf GPU-Servern
Docker und Kubernetes machen KI-Workloads auf GPU-Servern reproduzierbar und gut verwaltbar: Docker bündelt Modell, Framework, CUDA-Bibliotheken und Abhängigkeiten in einem Container, das NVIDIA Container Toolkit gibt diesem Container Zugriff auf die GPU. Für einen einzelnen Server mit wenigen Diensten genügt meist Docker Compose. Kubernetes lohnt sich, sobald mehrere Modelle, mehrere GPUs oder automatisierte Rollouts ins Spiel kommen.
Warum Docker und Kubernetes für KI?
KI-Anwendungen haben besonders empfindliche Abhängigkeiten. Die Version des NVIDIA-Treibers, die CUDA-Laufzeit, PyTorch, das Inference-Framework und die Modellgewichte müssen zueinander passen. Ohne Container entsteht schnell eine Umgebung, die niemand mehr exakt nachbauen kann – und der Satz „bei mir funktioniert es“ wird zum Dauerproblem.
Container lösen das auf mehreren Ebenen:
- Reproduzierbarkeit: Dasselbe Image läuft in Test und Produktion identisch.
- Isolation: Mehrere Modelle mit unterschiedlichen Framework-Versionen laufen auf demselben Server, ohne sich zu stören.
- Schnelle Updates und Rollbacks: Eine neue Modellversion ist ein neues Image; geht etwas schief, ist die vorherige Version sofort wieder aktiv.
- Trennung von Plattform und Anwendung: Der Host benötigt nur Treiber und Container-Runtime, alles andere steckt im Container.
Docker mit NVIDIA-GPU-Unterstützung
Die Grundlage bildet das NVIDIA Container Toolkit. Es sorgt dafür, dass Container die GPU des Hosts nutzen können, ohne dass der Treiber im Container installiert sein muss. Wichtig ist das Zusammenspiel: Der Treiber läuft auf dem Host, die CUDA-Bibliotheken kommen aus dem Container-Image. Der Host-Treiber muss daher mindestens so aktuell sein, wie die CUDA-Version im Image es verlangt.
Ein Container mit GPU-Zugriff wird mit dem Parameter --gpus all gestartet; in Docker Compose wird die GPU im Abschnitt für Geräte-Reservierungen angefordert. Bewährte Praktiken für den Betrieb:
- Modellgewichte als Volume einbinden, nicht ins Image backen. So bleiben Images schlank und Modelle lassen sich unabhängig austauschen.
- Image-Versionen festschreiben, statt
latestzu verwenden. Nur so ist nachvollziehbar, was gerade läuft. - Gemeinsamen Speicher ausreichend dimensionieren, da Frameworks wie PyTorch ihn für die Kommunikation zwischen Prozessen nutzen.
- Health-Checks definieren, damit ein hängender Inference-Dienst automatisch erkannt und neu gestartet wird.
Auf unseren Managed KI-Servern sind Docker und das NVIDIA Container Toolkit bereits eingerichtet und aufeinander abgestimmt.
Gängige Container-Images für KI-Workloads
| Software | Einsatzzweck | Stärken |
|---|---|---|
| vLLM | LLM-Serving im Produktivbetrieb | hoher Durchsatz, OpenAI-kompatible API |
| SGLang | LLM-Serving mit komplexen Abläufen | effizientes Caching, strukturierte Ausgaben |
| NVIDIA Triton Inference Server | verschiedene Frameworks und Modelltypen | Multi-Framework, gut für Vision-Modelle |
| Ollama | Prototypen und kleine Setups | sehr einfache Bedienung |
| Open WebUI | Chat-Oberfläche für Nutzer | Anbindung an vLLM oder Ollama |
Hugging Face Text Generation Inference (TGI) war lange eine verbreitete Option, befindet sich aber inzwischen im Wartungsmodus. Für neue Projekte empfiehlt Hugging Face selbst Alternativen wie vLLM oder SGLang. Einen Vergleich der Inference-Frameworks finden Sie im Beitrag vLLM vs. Ollama vs. TGI.
Kubernetes für Multi-GPU und Multi-Modell
Wenn Sie mehrere Modelle auf mehreren GPUs oder Servern betreiben, übernimmt Kubernetes die Orchestrierung: Es verteilt Container auf verfügbare Ressourcen, startet ausgefallene Dienste neu, verteilt Last und führt Updates schrittweise ohne Unterbrechung durch.
Für GPUs braucht Kubernetes zusätzliche Komponenten. Der NVIDIA GPU Operator installiert und verwaltet Treiber, Container Toolkit, Geräte-Plugin und Monitoring-Exporter automatisiert auf allen GPU-Knoten. Seit Kubernetes 1.34 ist zudem Dynamic Resource Allocation (DRA) allgemein verfügbar. NVIDIA bietet dafür einen eigenen DRA-Treiber an, mit dem sich GPUs flexibler und anhand von Geräteeigenschaften zuweisen lassen als mit dem klassischen Geräte-Plugin (Stand: September 2026).
Auch das Teilen einer GPU ist möglich:
- Multi-Instance GPU (MIG): Die RTX PRO 6000 Blackwell lässt sich in bis zu vier hardwareseitig isolierte Instanzen aufteilen, etwa für Produktiv- und Testumgebung. Bei Verdacloud richten wir MIG auf Anfrage ein; es ist nicht Teil der Standardpakete.
- Time-Slicing: Mehrere Container teilen sich eine GPU zeitlich. Das eignet sich für Entwicklung und kleine Dienste, bietet aber keine harte Isolation.
Docker Compose, K3s oder vollständiges Kubernetes?
| Szenario | Empfehlung |
|---|---|
| Ein Server, ein bis wenige Modelle | Docker Compose |
| Ein oder wenige Server, automatisierte Rollouts gewünscht | K3s (schlankes Kubernetes) mit GPU Operator |
| Viele Server, mehrere Teams, hohe Anforderungen an Skalierung | vollständiges Kubernetes |
Ein häufiger Fehler ist, zu früh auf Kubernetes zu setzen. Für einen einzelnen GPU-Server mit einem Sprachmodell, einem Embedding-Modell und einer Weboberfläche ist Docker Compose übersichtlicher, schneller eingerichtet und leichter zu warten. Kubernetes entfaltet seinen Nutzen erst, wenn die Umgebung wächst.
Sicherheit im Container-Betrieb
Container sind kein Sicherheitsfeature an sich. Achten Sie auf:
- Container nicht als Root ausführen, wo es sich vermeiden lässt
- Inference-APIs nicht ungeschützt ins Internet stellen, sondern hinter Authentifizierung oder ein KI Secure Gateway legen
- Images aus vertrauenswürdigen Quellen beziehen und regelmäßig auf Schwachstellen prüfen
- Zugriffe in Kubernetes über rollenbasierte Rechte (RBAC) begrenzen
Weitere Maßnahmen beschreibt unser Beitrag zur Sicherheit von KI-Servern.
Unsere Managed-Container-Umgebung
Auf Wunsch stellen wir eine vorkonfigurierte Container-Umgebung bereit: Docker mit NVIDIA Container Toolkit, optional mit einer Weboberfläche zur Container-Verwaltung. Für größere Setups richten wir auf Anfrage K3s mit GPU Operator ein; das ist nicht Teil der Standardpakete und wird separat angeboten. Sie deployen Ihre Container, wir kümmern uns um Treiber, Updates, Monitoring und Backups der Plattform.
Häufige Fragen
Muss der NVIDIA-Treiber im Container installiert sein?
Brauche ich Kubernetes für einen einzelnen GPU-Server?
Können sich mehrere Container eine GPU teilen?
Welches Container-Image eignet sich für LLMs im Produktivbetrieb?
Verwandte Artikel
vLLM vs. Ollama vs. TGI: Inference-Frameworks für GPU-Server in der Praxis
vLLM, Ollama oder TGI? Stärken, Grenzen und Projektstatus der Inference-Frameworks – plus eine Methodik für aussagekräftige eigene GPU-Benchmarks.
Monitoring und Observability für KI-Workloads
Monitoring für KI-Workloads: welche GPU- und LLM-Metriken zählen, wie DCGM, Prometheus und Grafana zusammenspielen und welche Alerts sinnvoll sind.
On-Premise vs. Cloud GPU: Was ist die richtige Wahl für Ihr Unternehmen?
On-Premise, Cloud GPU oder Managed Dedicated Server? Kosten, Datenschutz, Betrieb und Flexibilität im Vergleich – Entscheidungshilfe für den Mittelstand.