A couple of months ago I was looking around for something new to try in the homelab. Since I had done Kubernetes last year when I was getting certified, I thought it might be a good idea to try out KubeVirt. Kubevirt sits on top of Kubenetes and allows one to deploy more traditional VMs. With my existing Kubernetes deployment and my history with VMware, this seemed like a good fit.

That is until my buddy Eric Shanks did a blog post about Harvester. After five minutes of researching Harvester, I knew this was what I would do next.

What is Harvester?

Harvester is a virtual machine and container platform built on Kubernetes. From the website, it is “a modern, open, interoperable, hyperconverged infrastructure (HCI) solution built on Kubernetes.”

Harvester uses several open-source products to build its platform.

  • Linux OS. Elemental for SLE-Micro 5.3 is at the core of Harvester and is an immutable Linux distribution designed to remove as much OS maintenance as possible in a Kubernetes cluster.
  • Built on top of Kubernetes. Kubernetes has become the predominant infrastructure language across all form factors, and Harvester is an HCI solution with Kubernetes under the hood.
  • Virtualization management with KubeVirt. KubeVirt provides virtualization management using KVM on top of Kubernetes.
  • Storage management with Longhorn. Longhorn provides distributed block storage and tiering.
  • Observability with Grafana and Prometheus. Grafana and Prometheus provide robust monitoring and logging.

This ticks a lot of boxes for me. First, I did a series of posts on Kubernetes a bit over a year ago. Second, I was already interested in Kubevirt. Lastly, although I didn’t make any posts about it, I did a Proof of Concept for a monitoring solution a few years ago which heavily used Grafana and Prometheus. All in all, Harvester seems like a great match for me.

I have some dedicated hardware where I want to deploy Harvester. However, I decided to first deploy it to VMware Workstation to get a feel for the process and poke at it until I get a more permanent home setup.

VM Deployment

We will start by creating a new VM in Workstation:

Select Custom as we will need to make some changes as we go which are different than just Typical

The compatibility will start with one for Workstation, but we need to ESXi. Whenever I did not choose ESXi I had network issues with the VM and could not finish the deployment.

Choose the Harvester ISO

For Operating System, select Linux and OpenSUSE 64bit

Name the VM and the location it will be stored

For processors, I found anything less than 4 and the required pods wouldn’t be able to spin up. The system requirements for Harvester are 8CPU minimum, but I was able to get it deployed with 4.

Memory is similar, the requirements list 32, but my deployment was able to stand up with 8.

Select Bridged Networking for the VM to utilize the host nic.

SCSI for disk

Create a new virtual disk

I tried to deploy this a few times with less than 250GB of space, but the installer wouldn’t let me proceed. 250 was the minimum limit for me.

After this finish up the wizard and boot up the VM to finish the deployment

Installing Harvester

This is a fresh Harvester install so we begin with choosing “Create a new Harvester cluster”.

I only have one disk attached to my VM so I choose the defaults here. Also, this screenshot is from a time I tried the install with a smaller disk size. Just pretend the 50G is 250G.

Decide on a hostname

Configure networking. If you deployed the VM with Workstation compatibility, you may have issues here. When I had select Workstation compatibility, my VM would not recognize the nic and so I could never proceed past this step.

I am choosing a static configuration.

Enter your DNS settings

Configure the Virtual IP

Choose a cluster token.

Create a password for the node.

NTP Settings

The next three screens you are able to leave blank which I did. They are Proxy settings, an option to import SSH keys, and optional Harvester config.

Assuming everything looks good your installation should kick off.

Once it is done your VM should look like this.

My installation took somewhere between 15 to 30 minutes before the status changed to “Ready”, so patience is important. If it takes too long though, it could be something is wrong and you may need to troubleshoot in the VM.

Hit the Management URL in a browser and choose your password for logging in.

Now at long last we are done with deployment and in Harvester! Enjoy!!!

I will be posting more soon as I mess around with my installation. Thanks!

Categories: harvester