In the current world I see many customers looking at alternative ways of running Virtual Machines (VMs) in the same platform as where they are running their modern container workloads. Suse has come up with Harvester, which can run virtual machines AND integrate into the Suse Rancher platform.
As always, if reading is not your thing you can skip straight to the video.
This is NOT the hypervisor you’re looking for
To start of with a famous Star Wars meme, people looking for a hypervisor to run their VMs won’t find it in Harvester.
So if there is no hypervisor, then what is Harvester using to run VMs? The answer is of course: Containers. Wait what??
KubeVirt
KubeVirt is the technology behind this all; it allows you to collapse a VM inside a container and run it as such. So within Harvester the first thing that runs on top of the nodes is a container layer, not a hypervisor. If you need to run a VM on the platform, you simply ask KubeVirt to build you a container which contains an empty shell VM. You mount an ISO and a disk, start the container ehh VM and off you go! I found this clarifying image on the Harvester website:
As you can see in the image above, the nodes (which in my demo video are bare metal nodes or to make it even more complex – VMware virtual machines) run Linux. Harvester creates an RKE cluster on top which runs KubeVirt and Longhorn. Longhorn will grab the local disks and hand them out as shared storage (HCI).
Integration of VMs into Suse Rancher
To make things more fluent, Suse integrated Harvester into Rancher. So if you login to Rancher, you’ll have to option to deploy and manage both containers and VMs, all within the same platform:
As you can see, both worlds are in a single GUI, nicely integrated.
It gets even better: Deploying (ephemeral) k8s clusters on top of Harvester
Yes you read that right: You can deploy and destroy k8s clusters on top of Harvester! So technically that runs a containerized VM on top of which a container platform is running. To my surprise this was quite performant, even though the layering seems complex. This complexity is all hidden from the GUI, where you simply deploy new clusters on top of Harvester:
How cool is that? You now have the flexibility of a VM-based environment to deploy your container platforms! Really cool, especially when you want to build and break ephemeral clusters, or maybe several clusters “overlapping” each other on a limited set of physical hardware.
Hint: If you look at the image above this one where I compare container- and VM-viewpoints, you can see some virtual machines there (named “rke2-test-pooln-xxx” ) which are actually control plane and worker nodes forming an RKE2 cluster sitting inside Harvester! The actual RKE2 cluster you can see on the left (creatively named “rke2-test“).
So there you have it! Running containers on top of VMs on top of containers! Ultimate flexibility while never leaving the single Rancher platform.
And if your brain wasn’t scrambled: How about the initial test with Harvester I did installing it on VMware vSphere:
“Running containers on top of VMs on top of containers on top of VMs.
Why? Because I cĂ n!
(This actually made me think of “Just wait until the DOS emulator on my Atari ST boots and it runs the ZX-81 emulator that will run “3D Monster Maze” “). Yes I am that old đ
Also available as video
As always, you can watch a demo of this as a video here: