Start a Conversation

Unsolved

R

1 Rookie

 • 

15 Posts

358

November 2nd, 2023 15:35

An Introduction to KubeVirt, Virtual Machines on Kubernetes – DevOps Dialogs Lightboard Series

An Introduction to KubeVirt, Virtual Machines on Kubernetes – DevOps Dialogs 
Lightboard Series


There is no doubt that
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. 

Connect with us at Dell Technologies Developer

4 Posts

November 3rd, 2023 14:35

Using VMs and containers together can help organizations reduce infrastructure costs. This is a good thing. But they are difficult to manage

1 Rookie

 • 

15 Posts

December 20th, 2023 15:26

@damyiu​ that's a fair point. The complexity that Kubernetes/Openshift adds alone can be a lot for orgs. However, many orgs are running VMs and Containers and often using VMs to run their container infra. That being said, there are definitely cases where you may only want some specific services running in VMs next to container with something like KubeVirt and other VMs managed elsewhere. 

Top