Header Background
 
 
 

KubeVirt bringt klassische Virtualisierung in die Welt von Kubernetes – ohne zusätzliche Hypervisor-Plattformen. Mit nativer Unterstützung für KVM-basierte virtuelle Maschinen und vollständiger Integration in die Kubernetes-API über Custom Resources, ermöglicht KubeVirt den parallelen Betrieb von Containern und VMs im selben Cluster. Im Artikel zeigen wir, wie KubeVirt funktioniert, welche technischen Komponenten (z. B. virt-launcher, VMI, libvirt) beteiligt sind, wie VMs über YAML definiert werden und welche Use Cases – von Legacy-Integration bis Edge-Computing – besonders profitieren.

Was ist KubeVirt?

KubeVirt erweitert Kubernetes um die Fähigkeit, vollwertige virtuelle Maschinen neben Container-Workloads auszuführen. Dies geschieht durch eine Reihe von Custom Resource Definitions (CRDs), welche die Virtualisierung in die Kubernetes-API integrieren.

KubeVirt wurde ursprünglich von Red Hat initiiert und wird mittlerweile als CNCF-Projekt geführt. Ziel ist es, Containerisierung und Virtualisierung auf einer Plattform zu vereinen, ohne separate Managementsysteme wie OpenStack oder vSphere betreiben zu müssen.

Warum ist das relevant?

Viele Unternehmen betreiben hybride Workloads: Einige Anwendungen laufen in Containern, andere (z. B. legacy oder spezielle Systeme) weiterhin in VMs. KubeVirt bietet einen nahtlosen Weg, beides zentral über Kubernetes zu verwalten – mit einheitlichen Tools, Policies und CI/CD-Prozessen.

Technische Architektur & Funktionsweise von KubeVirt

KubeVirt ist kein Hypervisor im klassischen Sinn, sondern ein Operator, der bestehende Virtualisierungstechnologien in Kubernetes einbettet – insbesondere KVM (Kernel-based Virtual Machine).

Zentrale Komponenten von KubeVirt

KomponenteFunktion
KubeVirt Operator Installation, Management und Lifecycle von KubeVirt-Komponenten
VirtualMachine (VM) CRD Repräsentiert eine virtuelle Maschine als Kubernetes-Ressource
VirtualMachineInstance (VMI) Laufzeitinstanz einer VM
virt-launcher Sidecar-Container, der KVM-VMs in Pods ausführt
virt-handler Überwacht den Lifecycle von VMs auf dem Node
virt-controller Verantwortlich für das Scheduling und Starten von VMs
libvirt/qemu Unterliegende Virtualisierungsschicht, eingebettet in Container
ContainerDisk/ImageDisk VM-Images im Containerformat (z. B. QCOW2)

Wie funktioniert eine VM in Kubernetes?

  1. Der Nutzer erstellt ein Objekt vom Typ VirtualMachine per YAML oder API.
  2. KubeVirt erzeugt daraus eine VirtualMachineInstance, ähnlich wie ein Pod.
  3. Auf dem Ziel-Node wird ein Pod mit einem virt-launcher erstellt, der QEMU/KVM in einem isolierten Container ausführt.
  4. Die VM läuft im Kontext eines Kubernetes-Pods und kann mit Netzwerk, Storage und Monitoring-Tools wie ein Container verwaltet werden.

Beispiel: YAML-Definition einer VM

apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
  name: ubuntu-vm
spec:
  running: true
  template:
    metadata:
      labels:
        kubevirt.io/domain: ubuntu-vm
    spec:
      domain:
        devices:
          disks:
          - disk:
              bus: virtio
            name: rootdisk
        resources:
          requests:
            memory: 2Gi
      volumes:
      - name: rootdisk
        containerDisk:
          image: kubevirt/ubuntu-cloud-image


Anwendungsbeispiele für KubeVirt

  • Lift-and-Shift von Legacy-Anwendungen ohne vollständige Containerisierung
  • Testumgebungen mit VMs und Containern auf derselben CI/CD-Plattform
  • Edge-Computing: Ausführung von Containern und VMs auf Edge-Nodes
  • Cloud-native VDI (Virtual Desktop Infrastructure)
  • Hybrid-Cloud-Szenarien mit OpenShift, Rancher oder anderen K8s-Distributionen


Vorteile von KubeVirt

  • Unified Management: Einheitliche API und Deployment-Mechanismen für Container und VMs
  • Wiederverwendung vorhandener Toolchains: Monitoring, Logging, CI/CD auch für VMs
  •  Ressourcenteilung: VMs und Container teilen sich das Cluster
  • Isolation durch KVM: VMs laufen vollständig virtualisiert mit starker Isolierung
  • Kubernetes-native: Kein separater Hypervisor oder Management-Stack nötig


Nachteile & Herausforderungen von KubeVirt

  • Performance-Overhead: Virtualisierung in Pods bringt leichten Mehraufwand
  • Netzwerk-Setup komplexer: Multus, SR-IOV etc. notwendig für komplexe Netze
  • Storage-Integration: Erfordert Kenntnisse zu Persistenz in Kubernetes
  • Noch nicht Feature-parity: Snapshotting, GPU, Migration eingeschränkt
  • Komplexe Fehlersuche: Debugging in VM-Container-Kombination kann herausfordernd sein


Fazit: Wann lohnt sich KubeVirt?

KubeVirt ist eine leistungsstarke Lösung für Organisationen, die auf Kubernetes setzen, aber weiterhin VMs benötigen. Es bietet eine moderne, DevOps-freundliche Alternative zu klassischen Virtualisierungsplattformen, reduziert Infrastruktur-Silos und ermöglicht hybride Workloads auf einer Plattform.

Geeignet für:

  • Kubernetes-first-Strategien
  • CI/CD für VM-basierte Software
  • Hybride Anwendungen in Dev, Test & Prod
  • Cloud-native Rechenzentren

Weniger geeignet für:

  • High-Performance-Virtualisierung (z. B. HPC)
  • Standalone Virtualisierung ohne Kubernetes-Stack

Autor: Florian Deinhard Autor

LinkedIn Profil von: Florian Deinhard Florian Deinhard

Artikel erstellt: 20.10.2025
Artikel aktualisiert: 20.10.2025

zurück zur Übersicht

 
 
 
Diese Seite weiterempfehlen:
0
Merkzettel öffnen
0
Besuchsverlauf ansehen
IT-Schulungen.com Control Panel