02 · Cluster layout
Level 0 — Harvester · bare metal · hosts two separate Level-1 RKE2 clusters as VMs. 3 × master (control-plane/etcd) · 15 × worker (compute+storage). · interactive original ↗
Level 1 · Application RKE2 cluster
Own VMs · separate cluster. 3 × master VM + 3 × worker VM (1 per zone, each on its own host, scale out evenly) · provisioned by Rancher.
Workloads and storage classes
- App pods — CNI: Canal/Cilium · pod CIDR 10.42.0.0/16
- Ceph CSI (RBD/FS) — PVCs → storage cluster over VLAN 210
- Harvester CSI — PVCs → Longhorn volumes (hot-plug disks)
Ingress
- MetalLB — L2/BGP · LoadBalancer VIPs from a pool on guest VLANs 300–399
- Gateway API — Envoy/Traefik GatewayClass · HTTPRoute/TLS behind MetalLB VIP
Plain VMs
Databases, appliances, legacy services.
- Root disks on Longhorn (1 replica, local — no network I/O)
- NICs on guest VLANs 300–399 (bridge)
- Live migration over mgmt/storage net
Level 1 · Storage RKE2 cluster — Rook / Ceph
Own VMs · separate cluster. Separate RKE2 · 3 × master VM + 6 × OSD worker VM — each on its own host, 2 OSD hosts per zone · OSD VM gets ALL host NVMe via passthrough (4 NVMe = 4 OSD daemons).
Components
- 3 × MON + 2 × MGR — anti-affinity across hosts
- OSDs on raw NVMe — passthrough disks, not Longhorn
- RBD · CephFS · RGW — served on Ceph public VLAN 210
Node anatomy
Each bare-metal host:
| Interface | Carries |
|---|---|
bond0 2×25G | Mgmt VLAN 100 — RKE2, Harvester API, live migration |
bond0 (tagged) | Guest VLANs 300–399 — VM traffic via bridge/mgmt-bo |
bond1 2×25G | Longhorn storage VLAN 200 — replica sync (dedicated) |
bond1 (tagged) | Ceph public 210 + cluster 211 — storage VM NICs |
eth-bmc 1G | OOB / IPMI VLAN 90 — isolated |
| disks | 2×SSD (OS+Longhorn) · 2–4×NVMe reserved for Ceph OSD passthrough |
18-node layout
18 nodes · each row = L0 bare-metal host (Harvester's own RKE2) + its L1 guest VM · 3 zones (racks).
Placement rules
- Harvester master hosts (hv-01, hv-07, hv-13) carry no guest VM — one per zone.
- Every application-cluster VM and every storage-cluster VM sits alone on its host.
- OSD hosts pass all their NVMe through to the OSD VM; masters live on separate hosts.