The Kubernetes platform’s evolution allows organizations to revisit how they develop new applications using microservices and containers. As with any new technology there can be the temptation to “move everything to containers”, yet history shows the length of such transitions is measured in years, or even decades. With a major part of the current application landscape residing in virtual machines, the mission of the open source KubeVirt project is to re-imagine virtualization in a Kubernetes world – enabling the use of Kubernetes as a converged platform for running and managing both application containers and virtual machines side by side.
Bringing Kubernetes philosophy, concepts and semantics to virtualization management
When you think about the relationship between containers and virtual machines, the first thought many have is “why not run containers on VMs?”. Certainly this is the way many organizations first start out with containers and Kubernetes. After all, virtual machine infrastructure and management tools are already broadly adopted and more mature than Kubernetes. Virtual machines improved data centers with their ability to abstract hardware maintenance and consolidate workloads, but they can come with a price in performance and a management overhead of an operating system per workload. If we add Kubernetes to the mix, which brings its own orchestration and scheduling, we end up with multiple layers of management and orchestration just to keep our clusters running. With the Kubernetes ecosystem seeking to close the management and ecosystem gaps, KubeVirt can allow us to envision the future data center managed with Kubernetes as its underlying infrastructure, designed to bring the best of both worlds together.
Virtual Machines in a container?
The beauty and simplicity of KVM virtualization is that virtual machines are Linux processes, benefiting from existing Linux features. Virtualization is mostly used in managed environments, orchestrating virtual machines (compute) across a cluster of hosts, network and storage. Kubernetes is orchestrating containers (processes) across a cluster of hosts, network and storage. With KVM virtual machine being a Linux process, why not use Kubernetes to orchestrate virtual machines?
Virtual Machines Managed by Kubernetes
How does it work?
KubeVirt is a Kubernetes add-on consisting of custom resource definitions (CRDs), controllers and an operator leveraging a range of Kubernetes extension mechanisms. KubeVirt provides an API for virtualization with the same concepts as other Kubernetes entities, patterns and tools. Using Kubernetes and KubeVirt allows us to launch containers and virtual machines on the same cluster, same node, using the same networks and same storage infrastructure.
It's about balance
Virtual machines have different semantics than containers. For virtual machines, one needs to describe some aspects of the virtual hardware, and since applications in virtual machines usually mix the application with its data, persistent storage is needed. There may be expectations such as layer 2 networks, PXE boot for provisioning, cloning images and live migration.
KubeVirt is designed to maintain a balance by providing virtualization capabilities, yet keeping the Kubernetes philosophy and semantics. This enables a transition path where virtual machines can behave the same as before but also leverage Kubernetes infrastructure, tools, management.
KubeVirt also allows virtual machines to benefit from features in Kubernetes, using the various storage classes, networking concepts from overlay networks to routes and load balancers, multi-tenancy, RBAC, integrated monitoring and logging, and service mesh.
It’s good for Kubernetes too
Virtualization has many mature concepts. Bringing virtualization to Kubernetes can mean a broader community investing in tools augmenting Kubernetes like Containerized Data Importer (CDI) allowing clone/upload/download/export/import content for PersistentVolumes, fencing to provide high availability for containers (for example, when using PersistentVolumes), layer 2 networking, device passthrough (SR-IOV, GPU), bare metal hardware management, CSI drivers for advanced storage offloading and enhanced management.
Closing the loop - A feasible path forward
At Red Hat Summit 2018, we demoed how one can import a virtual machine to OpenShift, start modernizing and containerizing it, with the virtual machine behaving like a container in OpenShift, exposing or consuming OpenShift services and routes. As organizations adopt Kubernetes, they can bring along their virtual machines, manage them together side by side with containers starting as virtual machines, transitioning them to leverage Kubernetes for virtualization, or to containerize the apps.
Check out KubeVirt in our "Getting Started with KubeVirt" post, also published this morning.
About the author
Browse by channel
Automation
The latest on IT automation for tech, teams, and environments
Artificial intelligence
Updates on the platforms that free customers to run AI workloads anywhere
Open hybrid cloud
Explore how we build a more flexible future with hybrid cloud
Security
The latest on how we reduce risks across environments and technologies
Edge computing
Updates on the platforms that simplify operations at the edge
Infrastructure
The latest on the world’s leading enterprise Linux platform
Applications
Inside our solutions to the toughest application challenges
Original shows
Entertaining stories from the makers and leaders in enterprise tech
Products
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Cloud services
- See all products
Tools
- Training and certification
- My account
- Customer support
- Developer resources
- Find a partner
- Red Hat Ecosystem Catalog
- Red Hat value calculator
- Documentation
Try, buy, & sell
Communicate
About Red Hat
We’re the world’s leading provider of enterprise open source solutions—including Linux, cloud, container, and Kubernetes. We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.
Select a language
Red Hat legal and privacy links
- About Red Hat
- Jobs
- Events
- Locations
- Contact Red Hat
- Red Hat Blog
- Diversity, equity, and inclusion
- Cool Stuff Store
- Red Hat Summit