KubeVirt v1.0 was released earlier this week. Having gained features, maturity, trust, and adopters over the past years, this version 1.0 is a reflection of the status of the project with its mature codebase and healthy community.
KubeVirt is a Kubernetes Operator with a virtualization API and runtime in order to run virtual machines on Kubernetes. KubeVirt is the foundation of OpenShift Virtualization and enables data center owners to modernize their infrastructure, converge on one platform, and unify their operations. Developers benefit as they can develop and automate containerized and virtual machine-based applications consistently on the very same platform.
Reflections on the genesis of KubeVirt
In the years leading up to the CNCF Sandbox, KubeVirt spent a lot of time finding the right way of integrating with Kubernetes to meet a key design goal of KubeVirt: unlock the emerging and vibrant Kubernetes ecosystem for Virtual Machines (VMs) as well.
The realization that containers are actually not that different when it comes to resource and computing needs compared to VMs was the linchpin for starting the work on the project.
Initially, kubelet (node) and API (cluster) level approaches were compared. By adapting the API level integration, KubeVirt influenced TPRs and their eventual reincarnation as CRDs.
Most of the integration points and issues were resolved by 2019. We were able to integrate with—and benefit from—Istio, be observed by Prometheus, consume storage provided by CSI, deliver VM images with containers, and obey OPA policies.
Around that time, we saw the first poof points—companies adopting KubeVirt in PoCs and some of them even in production. Some of this early work eventually led to the cluster-api-provider-kubevirt and NVIDIA to run GeforceNOW on Kubernetes.
By seeing the idea, applicability, and value proposition validated, there was enough data for KubeVirt to join the CNCF Incubator.
Continued evolution and maturation of enterprise-grade features
While being overshadowed by the pandemic, KubeVirt continued to evolve:
- Secure by default by running VMs as non-root
- Usability enhancements, including extending virtctl, introducing VMPools, instanceTypes, and volume preference inference
- Compute enhancements including but not limited to optimizing compute workloads with dedicated iothreads, guaranteed CPUs, supporting additional architectures such as ARM, introducing Real-Time, vGPU, and PCI device passthrough support
- Storage enhancements like support for Snapshots, VM Exports, backup vendor integrations, building-blocks for golden image-like flows
- Networking enhancements such as SR-IOV support, OVN-Kubernetes integrations
“If in conflict, then prefer Kubernetes over Virtualization” has been a long-lasting principle in KubeVirt’s development. Over time, several features from the classic virtualization world found their way into Kubernetes, such as storage snapshots, multiple networks, and NUMA awareness. Other features have not landed in Kubernetes directly but in its ecosystem, including: nmstate for host network configuration, rook for distributed storage, and ovn-kubernetes for SDN.
Ecosystem and adoption
By now, Kubernetes and its ecosystem are the best way to build a platform for running almost any workload in a cloud-native way and environment. Having VMs and containers on the same platform simplifies operations, provides users a high degree of freedom, increases automation, and improves overall efficiency.
This has not gone unnoticed by vendors, with quite a few adopting KubeVirt and surfacing it in their respective products: Red Hat—as a founding member—surfaces KubeVirt in OpenShift Virtualization. Kubermatic, SuSE Rancher, Google, Oracle, and others also provide on-prem products with KubeVirt inside. Civio, Puzl, Platform9, and others have brought KubeVirt to the cloud and provide managed and self-managed offerings.
If you also use KubeVirt, then please join the team and add yourself as an adopter.
The takeaway? KubeVirt is in a healthy spot:
- The value of KubeVirt is recognized.
- The software is feature-rich, robust, tested, and the accepted platform for running virtual machines on Kubernetes.
- The community has evolved and continues to improve the project with features, documentation, and presence at conferences.
It’s just about right to see KubeVirt release its version v1.0.0.