Breaking free from legacy: A definitive guide to successful migration from VMware to KubeVirt- Part 2

In Part 1 of this series, we discussed the benefits of a shift from VMware to KubeVirt. In Part 2, we’re going to start looking at what, realistically, is involved in moving your VMs. 

Technology migrations are historically complex projects with a lot of uncertainty at the beginning and a fair amount of risk accepted to reap the gains of the transformation. However, much of the stress of a migration is in the unknown – what does the migration process look like? What’s involved? What are my options? More than a few migration projects stopped before they started simply because there wasn’t a clear and understandable path to get from A to B. 

Like any migration, a move from VMware to KubeVirt can have challenges. However, an examination of the process can make it easier to see where the speed bumps and roadblocks might exist, as well as help identify valuable tools and assistance to get through any rough spots.  

Understanding the Migration Process   

Before diving into the migration process, it’s essential to comprehend the key differences between VMware and KubeVirt. VMware is the industry’s de-facto virtualization platform, with a widely used vSphere hypervisor. KubeVirt is a modern cloud-native alternative that leverages Kubernetes to orchestrate both VMs and containers.  

By migrating to KubeVirt, organizations can achieve increased scalability, improved resource utilization, and a more streamlined infrastructure. However, the migration process may present challenges such as network and storage configurations, as well as potential application compatibility issues. Understanding these factors will enable you to plan an effective migration strategy.  

Preparing for the Migration 

To ensure a successful migration, you must thoroughly understand your current environment. Here are steps to consider: 

  1. Assess your current VMware environment, noting the number of virtual machines (VMs), their configurations, and dependencies. This information will help you determine the required resources for the KubeVirt cluster.  
  2. Make a note of the VMware versions that these VMs are running on. Many organizations may have multiple versions running, which can complicate the migration process. 
  3. Make a note of Guest OS versions. 
  4. Analyze VM dependencies, such as shared storage, network connectivity, and external services.  
  5. Establish a clear migration strategy outlining the order and priority of VM migrations.  

Getting Kubernetes and KuberVirt installed 

To begin the migration process you’ll need to set up a Kubernetes cluster and deploy the KubeVirt components. Once your cluster is up and running, you need to configure storage classes and persistent volumes to ensure proper data management and set up networking to establish connectivity between VMs and external resources.  

This link explains how to set up your K8s cluster and KubeVirt with Platform9: If you would like to see a live demo of this environment, book a call with us.

Migrating Virtual Machines 

Now, let’s take a look at the various approaches to migrating virtual machines from VMware to KubeVirt. You can choose between a lift-and-shift migration, which involves replicating VMs as they are, or a rebuilding approach, where you create new VMs on KubeVirt and migrate the application and data. 

Each of these methods has its strengths and weaknesses, making each well-suited to some workloads and less ideal for others. 


Fast migration

Minimal code changes, if any

Reduces risk

Better optimization

Opportunity to identify and implement workload improvements

Some legacy apps may still need modification

KubeVirt and cloud native toolsets such as backup, DR, etc. are different than VMware (we address this in a later blog)

Can result in disruptions

May involve downtime for the workload

Lost opportunity cost as teams work on refactoring the code

Lift-and-Shift Migration 

The lift-and-shift approach involves replicating the VMs from VMware to KubeVirt without making significant changes.  Here are the steps: 

  1. Create VMs in KubeVirt that match the specifications of your VMware VMs. This includes defining the CPU, memory, and disk requirements.  
  2. Use tools like virt-v2v, QCOW2, or virt-p2v to convert VMware VMs to KubeVirt-compatible formats. These tools convert the VM’s disk images, network configurations, and other parameters.  
  3. Deploy the converted disks in KubeVirt by easily adding them to the VM that was created.  

Rebuilding VMs 

The rebuilding method entails creating new KubeVirt VMs and migrating the application and data. Here are the steps: 

  1. Get an inventory of the applications running on the VMware VMs and their dependencies.  
  2. Set up the necessary infrastructure in the KubeVirt environment, such as networks, storage, and services.  
  3. Rebuild the VMs in KubeVirt by creating new VM instances and installing the necessary operating systems and applications.  
  4. Ensure that you replicate the networking and storage configurations from the VMware environment.  
  5. Migrate the application and data from your VMware VMs to the new KubeVirt VMs, ensuring a smooth transition.  

It’s worth noting that there is a third option. It’s possible to use a third-party utility to migrate the VMs. If you’re interested in utilizing a third-party tool, get in touch with us for recommendations. 

Transferring VM Disk Images 

During the migration process, you’ll need to transfer the VM disk images from VMware to KubeVirt. One approach is to use tools like virt-v2v or virt-p2v to convert the VM disk images into formats compatible with KVM/KubeVirt. Another option is to leverage storage technologies like NFS or block storage to make the disk images accessible to the KubeVirt environment. Ensure that the disk images are transferred securely and validate their integrity before starting the VMs in KubeVirt. 

Getting into the details of your VMware VM to KubeVirt migration 

In this blog, we’ve given you a high-level overview of the migration process when moving your VMware VMs to KubeVirt. In the next blog part 3 in this series, we’ll take a look at additional elements you’ll need to consider as part of the process, including network configuration and post-migration considerations. 

In the meantime, Platform9 is here to help you gain a better understanding of what your Total Cost of Ownership (TCO) with KubeVirt might look like – and what you’ll save over VMware. We’re offering a free TCO consult where we will work with you to assess your current infrastructure and show you how you can save money using our field-tested TCO model. Book your free consultation today. 

Kamesh Pemmaraju

You may also enjoy

Java app performance over the decades

By Chris Jones

Kubernetes FinOps: Elastic Machine Pool(EMP) Step-by-Step guide : Part 1

By Joe Thompson

The browser you are using is outdated. For the best experience please download or update your browser to one of the following: