An Introduction to KubeVirt, Virtual Machines on Kubernetes – DevOps Dialogs Lightboard Series
Thu, 02 Nov 2023 19:18:00 -0000
|Read Time: 0 minutes
>>>Embedded content: https://www.youtube.com/embed/JniNepFJHLs
Kubernetes is the DeFacto standard when it comes to running cloud native applications for the enterprise. Many organizations are modernizing their development and build processes to run their applications in containers, but what does this mean for existing applications that are already running in virtual machines?
Virtual machines have dominated the data center for many years, and for good reason. The concept of virtual machines traces back to use in the mainframe in the 1960’s and 70’s and has exploded in use for the decades that follow. The goal has remained the same, which is to create abstracted views of physical hardware through software so that many independent systems can be run on hardware-abstracted resources. This enables organizations to densely pack multiple virtual servers in a single physical server. Whether teams are running on popular virtualization stacks from VMWare or other options like KVM (Kernel-based Virtual Machine), and Hyper-V, the facts remain the same, VMs (Virtual Machines) are here to stay. So, what does the future look like as we adoption of container orchestration technologies like Kubernetes increases?
Many of the drivers that led organizations to adopt VMs have also remained true for container adoption. Efficiencies of running more applications on a single machine, improved packaging and delivery mechanisms, common abstractions for operations teams and more. This is why a strong opinion exists that VMs and containers running together in common orchestration platforms is a future that not only exists but will continue to be more commonplace.
One way that we see this being achieved is when Kubernetes environments adopt the virtualization project KubeVirt. KubeVirt allows you to install a virtualization stack on top of an existing Kubernetes cluster. KubeVirt then interacts with Kubernetes CRDs (Custom Resource Definitions) objects call a VirtualMachine (VM) and VirtualMachineInstance (VMI) that define a virtual workload. This includes its OS (Operating System), configurations, networking devices, external storage and more. These VMIs are run via the KubeVirt scheduling mechanisms onto a Kubernetes Worker node where it runs next to existing containers and can tap into the existing features like CNI (Container Networking Interface), CSI (Container Storage Interface), named service discovery and more.
Components of KubeVirt Include:
- Control Components
- virt-controller
- virt-API
Worker Components
- virt-Handler
- virt-launcher
- libvertd
- qemu
Learn more about how KubeVirt works by watching the above KubeVirt Lightboard or checking out KubeVirt’s documentation.