KubeVirt logo

KubeVirt

Runs virtual machines as native Kubernetes objects, so VMs and containers share one cluster and one API

Open Source Alternative to
Repository activity
  • Stars6.9k
  • Forks1.7k
  • Open Issues600
kubevirt health score - Linux Foundation Insights
License

Apache-2.0

Languages
  • Go
  • Starlark
  • Shell
KubeVirt screenshot

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