Harvester: Intro and Setup
What is Harvester?
Harvester is Rancher’s open source answer to a hyperconverged infrastructure platform. Like most things Rancher is involved with, it is built on Kubernetes using tools like KubeVirt and Longhorn. KubeVirt is an exciting project that leverages KVM and libvirt to run virtual machines inside Kubernetes; this allows you to run both containers and VMs in your cluster. It reduces operational overhead and provides consistency. This combination of tried and tested technologies provides an open source solution in this space.
It is also designed to be used with bare metal, making it an excellent option for a home lab.
If you check the hardware requirements, you will notice they focus more on business usage. So far, my personal experience says that you want at least a 4 core/8 thread CPU, 16GB of RAM, and a large SSD, preferably an NVMe drive. Anything less resource-wise doesn’t leave enough capacity for running many containers or VMs. I will install it on an Intel NUC 8i5BEK, which has an Intel Core i5-8259U. As far as RAM, it has 32GB of RAM and a 512GB NVMe drive. It can handle running Harvester without any issues. Of course, this is just my experience; your experience may differ.
Harvester ships as an ISO, which you can download on the GitHub Releases page. You can pull it quickly using wget.
$ wget https://releases.rancher.com/harvester/v0.2.0/harvester-amd64.iso
Once you have it downloaded, you will need to create a bootable USB. I typically use Balena Etcher since it is cross-platform and intuitive. Once you have a bootable USB, place it in the machine you want to use and boot the drive. This screen should greet you:
Select “New Cluster”:
Select the drive you want to use.
Enter your hostname, select your network interface, and make sure you use automatic DHCP.
You will then be prompted to enter your cluster token. This can be any phrase you want; I recommend using your password manager to generate one.
Set a password to use, and remember that the default user name is
The following several options are attractive, especially if you want to leverage your SSH keys used in GitHub. Since this is a home lab, I left the SSH keys, proxy and cloud-init setup blank. In an enterprise environment, this would be really useful. Now you will see the final screen before installation. Verify that everything is configured to your desires before proceeding.
If it all looks great, proceed with the installation. It will take a few minutes to complete; when it does, you will need to reboot.
After the reboot, the system will startup, and you will see a screen letting you know the URL for Harvester and the system’s status. Wait until it reports that Harvester is ready before trying to connect.
Great! It is now reporting that it is up and running, so it’s now time to set up Harvester.
We can navigate to the URL listed once the OS boots. Mine is https://harvest:30443. It uses a self-signed certificate by default, so you will see a warning in your browser. Just click on “advanced” to proceed, and accept it. Set a password for the default admin account.
Now you should see the dashboard and the health of the system.
I like to disable the default account and add my own account for authentication. Probably not necessary for a home lab, but a good habit to get into. First, you need to navigate to it.
Now log out and back in with your new account. Once that’s finished, we can create our first VM.
Deploying Your First VM
Harvester has native support for qcow2 images and can import those from a URL. Let’s grab the URL for openSUSE Leap 15.3 JeOS image.
The JeOS image for openSUSE is roughly 225MB, which is a perfect size for downloading and creating VMs quickly. Let’s make the image in Harvester.
Create a new image, and add the URL above as the image URL.
You should now see it listed.
Now we can create a VM using that image. Navigate to the VM screen.
Once we’ve made our way to the VM screen, we’ll create a new VM.
When that is complete, the VM will show up in the list. Wait until it has been started, then you can start using it.
In this article, I wanted to show you how to set up VMs with Harvester, even starting from scratch! There are plenty of features to explore and plenty more on the roadmap. This project is still early in its life, so now is a great time to jump in and get involved with its direction.