First KubeVirt Setup
VMs in K8s.
Overview
KubeVirt makes Kubernetes the control plane for virtual machines as well as containers. For teams with legacy VM workloads that cannot move to containers and modern container workloads on the same operational surface, KubeVirt collapses two platforms into one. The first install establishes the patterns the team will use across every subsequent VM workload.
- VMs in Kubernetes. Run VMs alongside containers in the same cluster. One operational surface, two workload shapes.
- VirtualMachine CRD. VMs as Kubernetes resources. Declarative definition, GitOps-friendly.
- Live migration. VMs move between nodes without restart. Node maintenance becomes routine.
- Nested virtualisation plus CSI storage. Bare metal or nested hosts; CSI drivers for VM disks bring modern storage workflows.
The approach
Three habits make a first KubeVirt deployment production-ready: install via the operator, define VMs as CRDs from day one, and use the Containerized Data Importer for storage so disks fit the CSI workflow.
- Operator-driven install. KubeVirt operator manages the install and upgrades. Standard K8s pattern.
- VM as CRD. Declarative VM definitions in source control. GitOps applies cleanly.
- CDI for storage. Containerized Data Importer bridges VM disks into CSI. Modern storage workflows just work.
- Live migration plus documented install. Plan node maintenance with live migration; per-cluster the configuration documented for the next operator.
Why this compounds
Each VM workload inherits the patterns established by the first one. Tooling sprawl shrinks; the team operates VMs with the same Kubernetes-native primitives as containers; mixed workloads run on the same hardware.
- Platform unification. One platform for VMs and containers. Operational surface stays small.
- K8s patterns apply to VMs. Same observability, same GitOps, same RBAC. Tool sprawl drops.
- Hardware utilisation. Mixed workloads on the same hardware. Capacity planning gets easier.
- Year-one investment, year-two habit. First VM is heavy lift. By the third, VM workloads are routine.