24.1 How upgrades work¶
Harvester upgrades the entire stack as one unit — OS, RKE2, Rancher, KubeVirt, Longhorn, Harvester components:
- A
Versionobject (auto-fetched online or created manually with the ISO URL) announces an available upgrade. - Pre-flight checks: all nodes ready, Longhorn volumes healthy (no degraded volumes), free disk space, no stuck migrations.
- The upgrade repo VM/pod serves the new ISO content inside the cluster.
- Cluster components upgrade (Rancher, Harvester charts).
- Nodes upgrade one by one: put into maintenance (VMs live-migrate), OS image written to the passive partition (A/B), reboot, rejoin.
- Post-upgrade cleanup.
24.2 Upgrade discipline¶
- Read the upgrade notes for every hop. Only certain source→target paths are supported (typically from the previous minor's latest patch). You may need intermediate hops.
- Stop or prepare non-migratable VMs (passthrough, local LVM) — they block node draining.
- Ensure backups are current.
- Check Rancher compatibility before upgrading Harvester (and vice-versa).
- Have enough spare capacity to evacuate one node's VMs.
- Upgrade guest clusters' Harvester CSI/CCM charts when advised.
- Watch progress:
kubectl -n harvester-system get upgrades.harvesterhci.io -o yamland the upgrade pods' logs.
24.3 Air-gapped upgrade¶
Download the ISO, host it on an internal HTTP server, and create a Version:
apiVersion: harvesterhci.io/v1beta1
kind: Version
metadata:
name: v1.9.0
namespace: harvester-system
spec:
isoURL: http://repo.internal.example.net/harvester/harvester-v1.9.0-amd64.iso
isoChecksum: "<sha512 from release>"
releaseDate: "2026-09-16"
Then click Upgrade in the UI.