Skip to main content

KubeVirt

KubeVirt is an open-source virtualization add-on for Kubernetes that enables running and managing Virtual Machine (VM) workloads alongside container workloads using native Kubernetes APIs (virtualization / container orchestration).

  • Extends Kubernetes to define, schedule, and manage virtual machines (VMs) as first-class Kubernetes resources (virtualization / container orchestration).
  • Provides custom resource definitions (CRDs) for VM lifecycle management, including creation, deletion, and updates via Kubernetes tooling (infrastructure automation).
  • Enables mixed workloads where containers and Vulnerability Management System (VMS) coexist on the same Kubernetes cluster and share platform services (hybrid workload platform).
  • Integrates with Kubernetes networking, storage, and scheduling primitives for VM connectivity and persistence (cloud-native infrastructure).
  • Supports VM-based workloads to run in cloud-native environments without rewriting applications as containers (application modernization / migration).

More About Kubevirt

KubeVirt addresses the need to run traditional VM workloads in environments that are standardized on Kubernetes (container orchestration), so platform teams can manage both containers and VMS with a unified control plane. It adds virtualization capabilities on top of Kubernetes rather than operating as a separate hypervisor platform, which allows reuse of existing Kubernetes skills, tooling, and operational processes for VM lifecycle management.

Technically, KubeVirt introduces custom resource definitions (CRDs) that represent virtual machines and related objects (virtualization). These CRDs integrate into the Kubernetes Application Programming Interface (API) server, allowing users to define VMS declaratively using YAML manifests and manage them via kubectl or other Kubernetes-native tooling (infrastructure automation). The project uses Kubernetes controllers and operators (controller framework) to reconcile the desired state of VMS with the actual state on cluster nodes, handling tasks such as VM creation, start, stop, and deletion.

KubeVirt integrates with the underlying Kubernetes networking stack (networking) so that VMS can participate in the same virtual networks used by containers, allowing consistent network policies and service exposure models. For storage, KubeVirt relies on Kubernetes persistent volumes and storage classes (storage orchestration), enabling VMS to attach persistent disks provided by the cluster storage backends. This design allows enterprises to apply the same storage, backup, and data management strategies for both containerized and VM-based workloads.

In enterprise environments, KubeVirt is used to host VM-based applications that are not yet containerized, to support workloads that require a VM runtime, or to consolidate infrastructure management by running VMS and containers on a single Kubernetes platform (hybrid workload management). Operations teams can apply Kubernetes-native observability, configuration management, and GitOps workflows (platform operations) to VM workloads, which can simplify governance and compliance processes when everything is controlled through Kubernetes APIs.

From an ecosystem perspective, KubeVirt is a Cloud Native Computing Foundation (CNCF) project (cloud-native ecosystem) and aligns with the broader set of tools that extend Kubernetes for specialized infrastructure functions. It fits in directories and taxonomies under categories such as Kubernetes extensions, cloud-native virtualization, and hybrid workload platforms. For enterprises, KubeVirt offers an approach to integrate existing VM workloads into Kubernetes-centric strategies, providing a single orchestration layer across heterogeneous application runtimes.