- Authors

- Name
- Phillip Pham
- @ddppham
KubeVirt: Multi-Tenant-GPU-Clouds auf Kubernetes
TL;DR
- KubeVirt bringt Virtualisierung als Add-on auf Kubernetes: VMs und Container mit einem gemeinsamen Control Plane.
- Klassische Device-Plugins sind für AI zu statisch — mal Passthrough, mal vGPU, mal MIG braucht DRA.
- Häufigstes GPU-Cloud-Muster: K8s → KubeVirt → Tenant-VMs → eigenes Kubernetes in der VM → GPUs.
- NUMA-Topology-Awareness ist kein Nice-to-have — falsche Platzierung bricht AI-Performance.
- KubeVirt 1.8+ bringt Alpha-Support für GPU via DRA in virtualisierten Umgebungen.
Was KubeVirt ist
KubeVirt ist ein Virtualisierungs-Add-on: VMs laufen auf Basis von QEMU/KVM innerhalb des Kubernetes-Ökosystems. Teams verwalten Container und VMs nicht in zwei Welten, sondern über dieselben APIs, Policies und GitOps-Pfade.
Status: breite Produktions-Adoption, Release-Zyklus an Kubernetes angeglichen, CNCF-Graduation im Anmarsch. Virtualisierung hat Overhead — nur dort einsetzen, wo Tenancy oder Security es erfordern.
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: tenant-gpu-1
spec:
running: true
template:
spec:
domain:
devices:
disks:
- name: rootdisk
disk:
bus: virtio
# GPU-Devices je nach DRA/Host-Devices-Konfiguration
resources:
requests:
memory: 32Gi
cpu: '8'
volumes:
- name: rootdisk
containerDisk:
image: quay.io/containerdisks/ubuntu:22.04
Warum AI die klassische GPU-Vergabe bricht
Altes Muster: Device-Plugin weist eine GPU einer festen Allokationsart zu — bis jemand manuell umkonfiguriert. AI/ML braucht Velocity: dieselbe Hardware mal als Passthrough, mal als vGPU, mal als MIG.
DRA (Dynamic Resource Allocation) präsentiert Geräte dem Scheduler als verfügbar; Workloads fragen Rezepte an; Zuweisung erfolgt dynamisch. NVIDIA hat seinen DRA-Driver an die Open-Source-Community gespendet — ein Ökosystem statt Single-Vendor-Wartung.
Mehr Technik-Tiefe zu CDI und Sharing: GPU in Kubernetes: CDI, Sharing und DRA.
KubeVirt als Tenancy-Layer
Der häufigste Einsatz bei GPU-Cloud-Betreibern:
Kubernetes (Basis / Host-Cluster)
└── KubeVirt (Virtualisierung / Tenancy)
└── Tenant-VMs
└── Kubernetes in der VM
└── Pods nutzen GPUs
- Betreiber betreiben den Host-Cluster und KubeVirt.
- Tenants bekommen VMs (starke Isolation).
- In den VMs läuft oft eigenes Kubernetes — Teams behalten vertraute Pod-Workflows.
- Alternative: KubeVirt-VM als Kernel-Wrapper um Workloads (Security), ohne volles Nested-K8s.
Das ergänzt Namespace-Multi-Tenancy: Wo Container-Isolation nicht reicht, liefert die VM die Grenze — vergleichbar zur Idee hinter Agent-Sandboxes, aber für ganze Tenant-Plattformen.
NUMA und Performance
Für leistungssensible AI/ML- und HPC-Workloads muss die NUMA-Alignment von GPU, NIC und Speicher stimmen. Topology-Awareness stellt sicher, dass Geräte auf dem richtigen Knoten landen — sonst bricht Durchsatz ein, obwohl „eine GPU zugewiesen" ist.
DRA-Constraints (z. B. gemeinsamer PCIe-Root für GPU und NIC) sind genau dafür gebaut. Wer Multi-Tenant-GPU-Clouds baut, behandelt Topologie als Architektur-Arbeit, nicht als Tuning-Nachtrag.
# Skizze: ResourceClaim für GPU (Host-Cluster)
apiVersion: resource.k8s.io/v1beta1
kind: ResourceClaim
metadata:
name: tenant-a-gpu
spec:
devices:
requests:
- name: gpu
deviceClassName: gpu.nvidia.com
allocationMode: ExactCount
count: 1
GPU-Modi in der VM (Richtung KubeVirt 1.8+)
Zielbild über DRA in virtualisierten Umgebungen:
| Modus | Nutzen |
|---|---|
| Passthrough | Maximale Performance, starke Isolation |
| vGPU | Mehrere VMs teilen physische GPU |
| MIG | Hardware-Partitionen als Mini-GPUs |
Alpha-/Beta-Status je Release prüfen. Nicht auf „fertig" warten — aber Upgrade-Pfade und Testlab fest einplanen.
Wann KubeVirt — und wann nicht
| Anforderung | Empfehlung |
|---|---|
| Viele Teams, starke Isolation, GPU-Cloud | KubeVirt als Tenancy-Layer |
| Nur interne Namespaces, vertrauenswürdige Pods | oft ohne VMs |
| Untrusted Agent-Code | eher Kata/Sandbox als volle Tenant-VM |
| Maximale Packing-Dichte | Container + MIG/MPS, Overhead der VM meiden |
Siehe auch Multi-Tenancy auf Kubernetes und vCluster.
Lessons Learned
- Statische GPU-Allokation ist der Velocity-Killer — DRA gehört auf die Roadmap.
- Graduation ≠ Betriebsfreiheit — Release-Disziplin und Test-Suites ernst nehmen.
- NUMA ist kritisch für echte AI-Adoption.
- Virtualisierung kostet — nur wo Tenancy/Security den Preis wert ist.
- DRA + KubeVirt reifen parallel — Piloten statt Big-Bang.
Fazit
Multi-Tenant-GPU-Clouds brauchen eine saubere Tenancy-Ebene und flexible Geräte-Zuweisung. KubeVirt liefert die VM-Grenze auf Kubernetes; DRA löst die starre Device-Plugin-Welt. Zusammen mit NUMA-Awareness wird daraus eine Plattform, auf der AI-Workloads nicht nur „eine GPU bekommen", sondern performant und isoliert laufen.
FAQ
Was ist KubeVirt? Virtualisierungs-Add-on: VMs im Kubernetes-Ökosystem, ein Control Plane für Container und VMs.
Warum DRA statt Device-Plugins? Device-Plugins sind statisch. DRA erlaubt Rezepte (Passthrough, vGPU, MIG) und dynamische Zuweisung.
Häufigstes GPU-Cloud-Muster? Host-K8s + KubeVirt + Tenant-VMs mit eigenem Kubernetes und GPU-Zugriff.
Verwandte Artikel
📖 Verwandte Artikel
Weitere interessante Beiträge zu ähnlichen Themen
GPU in Kubernetes: CDI, Sharing und DRA
GPUs unter Kubernetes verstehen: CDI statt NVIDIA-Docker, Time-Slicing vs. MPS vs. MIG und DRA als flexible Alternative zu den Device-Plugins.
Kubernetes AI at Scale: DRA, LLMD und Inference
Kubernetes wird Accelerator Native: DRA, LLMD, Disaggregated Serving und Inference Gateway für produktive GenAI-Workloads — was Plattform-Teams jetzt brauchen.
Agentic AI auf Kubernetes: Was in der Praxis zählt
Agentic AI auf Kubernetes: Warum K8s das Substrat bleibt, welche Schichten (Inference bis Agents) zählen und wo Sandbox, Scheduling und Kosten knifflig werden.
AI auf Kubernetes starten: Plattform statt Roh-Cluster
AI auf Kubernetes starten: Warum K8s flexibel genug ist — und warum ohne Plattform-Schicht (Scheduling, Serving, APIs) Training und Inference scheitern.
LLM-D: Verteilte Inference auf Kubernetes
LLM-D verteilt Inference über Kubernetes: Prefill/Decode trennen, KV-Cache nutzen, intelligent routen — niedrigere Latenz und bessere GPU-Kosten.
Ray auf Kubernetes: Distributed OS for AI
Ray und Kubernetes als Distributed OS for AI: KubeRay, elastisches Training und bessere GPU-Auslastung — wann sich die Kombination wirklich lohnt.
AI-Agent-Sandbox auf Kubernetes: VM-Isolation mit Kata Containers
AI-Agent-Sandbox auf Kubernetes: Warum Container-Isolation für untrusted Agents nicht reicht und wie Kata Containers VM-Isolation bei Standard-Container-Workflow liefert.
Kubernetes Multi-Tenancy für SaaS: Namespace vs. vCluster
Kubernetes Multi-Tenancy für SaaS: Wann reicht Namespace-Isolation mit RBAC und NetworkPolicy, wann braucht es vCluster? Vergleich inkl. YAML-Manifeste.