Runs virtual machines as native Kubernetes objects, so VMs and containers share one cluster and one API
Apache-2.0
- Go
- Starlark
- Shell

About KubeVirt
KubeVirt lets a Kubernetes cluster run virtual machines next to containers by adding a VirtualMachine resource type through Custom Resource Definitions. VMs become first-class cluster objects, scheduled, networked, and managed with the same kubectl, RBAC, and API workflows as the rest of the cluster.
It installs controllers and agents onto an existing cluster that create, schedule, launch, stop, and delete VMs, running guest workloads through libvirt and QEMU inside pods. This gives teams a path to bring legacy VM workloads onto Kubernetes without leaving them stranded outside it.
KubeVirt is a CNCF incubating project, Apache 2.0 licensed. It runs on an existing Kubernetes cluster rather than as a standalone hypervisor, and publishes a quickstart, user and developer docs, and an API reference.
Key features
- VirtualMachine resource type via Kubernetes CRDs
- Create, schedule, launch, stop, and delete VMs with kubectl
- Runs guest VMs through libvirt and QEMU inside pods
- Controllers and agents install onto an existing cluster
- VMs share cluster networking, RBAC, and scheduling
Details
- First released
- 2016
- Platforms
- Web
- Deployment
- Self-hostable
- License
- Apache 2.0
- Runtime
- Kubernetes · libvirt · QEMU
- Governance
- CNCF incubating
