Run legacy software that requires a full virtual machine on a Kubernetes cluster without separate VM infrastructure.
Manage virtual machines using kubectl and standard Kubernetes YAML manifests alongside existing container workloads.
Consolidate VM and container workloads onto a single Kubernetes cluster to reduce infrastructure overhead.
Provide strong tenant isolation using hardware-level virtual machines on shared Kubernetes nodes.
| kubevirt/kubevirt | gopasspw/gopass | vmware-archive/kubeless | |
|---|---|---|---|
| Stars | 6,850 | 6,852 | 6,853 |
| Language | Go | Go | Go |
| Setup difficulty | hard | moderate | hard |
| Complexity | 5/5 | 3/5 | 4/5 |
| Audience | ops devops | developer | ops devops |
Figures from each repo's GitHub metadata at analysis time.
Requires a Kubernetes cluster with hardware virtualization support on nodes, nested virtualization works for testing but is not production-grade.
KubeVirt is an add-on for Kubernetes that makes it possible to create and manage traditional virtual machines alongside the containers that Kubernetes normally runs. Without KubeVirt, Kubernetes only knows how to schedule containers. With KubeVirt installed, the cluster also understands virtual machines as a first-class resource type. Kubernetes is a system for running applications packaged in containers across a cluster of machines. It manages scheduling, restarts, and scaling automatically. Containers are lightweight and fast, but some workloads still need full virtual machines, either for compatibility with older software, specific hardware access, or stronger isolation between tenants. KubeVirt bridges that gap by teaching Kubernetes to handle both. Under the hood, KubeVirt adds new resource definitions to Kubernetes so that a virtual machine can be declared the same way any other Kubernetes object is declared, using a configuration file. Once declared, operators on the cluster can create, start, stop, schedule, and delete virtual machines using the same tools and workflows already used for containers. The actual machine virtualization relies on existing Linux virtualization infrastructure rather than reinventing it. The project provides documentation for both end users who want to run virtual machines on an existing Kubernetes cluster and for developers who want to contribute to or extend KubeVirt itself. Architecture and component breakdowns are available in the repository's docs folder. KubeVirt is an active open source project released under the Apache License 2.0. It has a community presence on Twitter, Slack, and a Google Group, and publishes a release schedule along with compatibility notes for different versions of Kubernetes.
KubeVirt extends Kubernetes to run traditional virtual machines alongside containers, letting you create, start, stop, and manage VMs using the same kubectl tools and YAML files you already use.
Mainly Go. The stack also includes Go, Kubernetes, Linux KVM.
Use freely in commercial and open source projects, attribution required in distributions but no copyleft obligation.
Setup difficulty is rated hard, with roughly 1day+ to a first successful run.
Mainly ops devops.
This repo across BitVibe Labs
Verify against the repo before relying on details.