Andrew Mercer
on this page

10.1 What Harvester is

Harvester is an open-source hyperconverged infrastructure (HCI) platform that installs on bare metal from an ISO and gives you, out of the box:

  • Virtual machine lifecycle (create, console, live-migrate, snapshot, back up).
  • Distributed block storage across the cluster's local disks.
  • VLAN/bridge networking, and in recent versions overlay/VPC networking.
  • A web UI, an API, a Terraform provider, and native Rancher integration.

It positions itself as a VMware vSphere / Nutanix / Proxmox / OpenStack alternative for organizations moving toward cloud-native operations, while still running VMs. It's free under Apache 2.0, with commercial support available as SUSE Virtualization.

10.2 The stack, bottom to top

┌─────────────────────────────────────────────────────────────────────┐
│ Harvester UI (Rancher dashboard extension) · Harvester API · TF     │
├─────────────────────────────────────────────────────────────────────┤
│ Harvester controllers (harvester-system)                            │
│  - VM/image/backup/template/settings controllers                    │
│  - harvester-network-controller · harvester-load-balancer           │
│  - node-disk-manager · node-manager · upgrade controllers           │
│  - pcidevices-controller · vm-import-controller (add-ons)           │
├──────────────────────┬──────────────────────┬───────────────────────┤
│ KubeVirt + CDI       │ Longhorn (V1 / V2)   │ Multus + bridge CNI   │
│ (VMs as pods via     │ (VM disks as         │ (VLAN networks) ·     │
│ virt-launcher/QEMU)  │ PVCs, backing images)│ Kube-OVN (overlay/VPC)│
├──────────────────────┴──────────────────────┴───────────────────────┤
│ Embedded Rancher (internal; cluster mgmt, auth, UI host) · Fleet    │
├─────────────────────────────────────────────────────────────────────┤
│ RKE2 (Kubernetes) · Canal CNI (mgmt) · kube-vip (cluster VIP)       │
├─────────────────────────────────────────────────────────────────────┤
│ Harvester OS — immutable, SLE Micro-based, A/B partitions, cOS/     │
│ Elemental toolkit lineage · KVM · libvirt-free (QEMU via KubeVirt)  │
├─────────────────────────────────────────────────────────────────────┤
│ Bare metal                                                          │
└─────────────────────────────────────────────────────────────────────┘

10.3 How a VM actually runs

  1. You create a VirtualMachine (kubevirt.io/v1) — directly or via UI/Terraform, which also creates PVCs from a Harvester image.
  2. KubeVirt's virt-controller creates a VirtualMachineInstance and a virt-launcher pod.
  3. The pod is scheduled like any pod (CPU/memory requests, affinity, taints).
  4. Inside the pod, virt-launcher starts QEMU/KVM, with the Longhorn volumes attached as block devices.
  5. Network interfaces: the default pod network (masquerade) and/or Multus secondary networks bridged onto VLANs.
  6. virt-handler (DaemonSet) on each node manages the VMI lifecycle locally.

So a VM is a pod. Everything you know about Kubernetes scheduling, resource accounting, and events applies — which is both Harvester's superpower and a source of surprises (e.g. memory overhead per VM).

10.4 Key Harvester CRDs

API group Kinds Purpose
harvesterhci.io/v1beta1 VirtualMachineImage, VirtualMachineTemplate, VirtualMachineTemplateVersion, VirtualMachineBackup, VirtualMachineRestore, KeyPair, Setting, Upgrade, Version, SupportBundle, ScheduleVMBackup, Addon Core Harvester objects
kubevirt.io/v1 VirtualMachine, VirtualMachineInstance, VirtualMachineInstanceMigration KubeVirt
network.harvesterhci.io/v1beta1 ClusterNetwork, VlanConfig, VlanStatus, LinkMonitor Physical network config
k8s.cni.cncf.io/v1 NetworkAttachmentDefinition VM networks (Multus)
loadbalancer.harvesterhci.io/v1beta1 LoadBalancer, IPPool Built-in LB
devices.harvesterhci.io/v1beta1 PCIDevice, PCIDeviceClaim, USBDevice, USBDeviceClaim, SRIOVNetworkDevice, SRIOVGPUDevice, VGPUDevice Passthrough
harvesterhci.io/v1beta1 (node-disk-manager) BlockDevice Disk discovery/provisioning
longhorn.io/v1beta2 Volume, Replica, Engine, BackingImage, Node, … Storage internals

Exact groups and versions can shift between releases; kubectl api-resources | grep -i harvester on your cluster is the source of truth.

10.5 Release cadence and support

Harvester ships a minor release roughly every 4–6 months with patch releases in between. There's no LTS; each minor has a standard maintenance window followed by extended maintenance. At the time of writing, 1.9 (Sept 2026) is the newest, 1.8 and 1.7 are patched, and 1.5 reaches end of life at the end of 2026. Plan to upgrade at least once or twice a year.

10.6 What's new in v1.9 (high level)

Based on the release announcements, v1.9 themes include:

  • Networking: pure underlay networking, Kube-OVN support for overlay/VPC networking, VPC NAT gateways, and isolated guest load balancers.
  • VM operations: a streamlined live-migration UI, safer defaults for VM restore, native Windows Sysprep support.
  • Workload integration: mounting Kubernetes service accounts into VMs via virtiofs.

Earlier releases (1.4–1.8) brought, among others: the Longhorn V2 data engine integration, a local-storage (LVM) add-on, CPU pinning, USB passthrough, RWX for guest clusters, VM backup/restore with images, boot and data volume encryption, and scheduled backups. Read the release notes for your target version for details and caveats.


← The supporting cast · Index · Harvester hardware planning →