12.1 Installation methods¶
- ISO (virtual media via IPMI/iDRAC/iLO, or USB).
- USB (dd the ISO).
- PXE / iPXE with a Harvester configuration file — the way to do it at scale.
- Nested in a VM for labs (enable nested virtualization; slow but useful).
12.2 Interactive ISO flow¶
- Boot → choose Create a new Harvester cluster (first node), Join an existing Harvester cluster, or install as a witness.
- Choose installation disk and (optionally) a separate data disk.
- Hostname, management NIC(s), bond mode, VLAN (if the management network is tagged), IP (static or DHCP).
- DNS, NTP, proxy.
- VIP: the cluster virtual IP (served by kube-vip) — this is the address for the UI/API and for joining nodes.
- Cluster token: shared secret used by joining nodes.
- Password for the
rancherOS user; optional SSH keys. - Confirm — install, reboot. The console shows status until it reads Ready.
Browse to https://<VIP> and set the admin password.
12.3 Harvester configuration file (automated install)¶
The same choices can be expressed in YAML and passed via harvester.install.config_url= kernel parameter (PXE) or harvester.install.automatic=true:
# create-node1.yaml
scheme_version: 1
token: "a-long-random-cluster-token"
os:
hostname: hv-node1
password: "$6$...hashed..." # or plain text for labs
ssh_authorized_keys:
- ssh-ed25519 AAAAC3... andrew@workstation
ntp_servers:
- 0.ca.pool.ntp.org
- 1.ca.pool.ntp.org
dns_nameservers:
- 10.0.0.1
install:
mode: create
device: /dev/nvme0n1
data_disk: /dev/nvme1n1
iso_url: http://pxe.lab.example.net/harvester/harvester-v1.9.0-amd64.iso
management_interface:
interfaces:
- name: eno1
- name: eno2
method: static
ip: 10.0.10.11
subnet_mask: 255.255.255.0
gateway: 10.0.10.1
default_route: true
bond_options:
mode: 802.3ad
miimon: 100
mtu: 1500
# vlan_id: 10 # if mgmt network is tagged
vip: 10.0.10.10
vip_mode: static
skipchecks: false
automatic: true
# join-node2.yaml
scheme_version: 1
server_url: https://10.0.10.10:443
token: "a-long-random-cluster-token"
os:
hostname: hv-node2
ssh_authorized_keys:
- ssh-ed25519 AAAAC3... andrew@workstation
install:
mode: join
device: /dev/nvme0n1
data_disk: /dev/nvme1n1
iso_url: http://pxe.lab.example.net/harvester/harvester-v1.9.0-amd64.iso
management_interface:
interfaces:
- name: eno1
- name: eno2
method: static
ip: 10.0.10.12
subnet_mask: 255.255.255.0
gateway: 10.0.10.1
default_route: true
bond_options:
mode: 802.3ad
miimon: 100
automatic: true
Other notable config keys:
install.role:default,management,worker,witness.install.with_net_images,install.persistent_partition_size(space for container images and logs).os.write_files,os.after_install_chroot_commands— customize the host (sparingly; it's immutable for a reason).os.modules,os.sysctls,os.environment(proxy).os.labels— node labels applied at join (great for zone/rack topology).system_settings— pre-seed HarvesterSettingvalues (backup target, overcommit, etc.).
12.4 iPXE example¶
#!ipxe
set base http://pxe.lab.example.net/harvester/v1.9.0
kernel ${base}/harvester-v1.9.0-vmlinuz-amd64 initrd=harvester-v1.9.0-initrd-amd64 ip=dhcp net.ifnames=1 rd.cos.disable rd.noverifyssl root=live:${base}/harvester-v1.9.0-rootfs-amd64.squashfs console=tty1 harvester.install.automatic=true harvester.install.config_url=http://pxe.lab.example.net/harvester/configs/${mac:hexhyp}.yaml
initrd ${base}/harvester-v1.9.0-initrd-amd64
boot
Serving per-MAC config files gives you fully hands-off cluster builds. Pair with the harvester-seeder add-on (IPMI/Redfish out-of-band management) for power control.
12.5 Post-install checklist¶
- [ ] Change/rotate the admin password; configure an auth provider (or rely on Rancher's after import).
- [ ] Download the kubeconfig (Support page) and verify
kubectl get nodes. - [ ] Set NTP and confirm clocks — etcd and Longhorn hate skew.
- [ ] Configure SSL certificate for the UI (
ssl-certificatessetting) andadditional-caif you use an internal CA. - [ ] Add data disks (Hosts → Edit → Disks) or set
auto-disk-provision-paths. - [ ] Configure cluster networks and VLAN networks for VMs.
- [ ] Configure the storage network if you have a dedicated NIC/VLAN.
- [ ] Set the backup target (S3 or NFS).
- [ ] Upload base images (cloud images with cloud-init).
- [ ] Enable add-ons you need (monitoring, logging, PCI devices, vm-import).
- [ ] Review overcommit settings.
- [ ] Import into Rancher if you have one.
← Harvester hardware planning · Index · Harvester networking in depth →