opi5-controlplane
- Model Lenovo ThinkCenter M900
- OS DietPi Trixie
- Architecture amd64
- CPU Intel Core i5-6500T · 4 cores / 4 threads
- Memory 8 GB DDR4
- Storage 256 GB NVMe SSD
- External 4TB NVMe SSD
- IP 192.168.1.240
Every node, every IP, every role.
The cluster is deliberately heterogeneous: the original Orange Pi 5s sit alongside Lenovo mini-PCs/Old Laptop on a wired 192.168.1.0/24 LAN. Every cluster node runs DietPi with K3s data on local NVMe/SSD storage.
opi5-controlplane opi5-worker-0 opi5-worker-1 opi5-worker-2 opi5-worker-3 opi5-worker-4-lenovo opi5-worker-5-genai Not everything belongs in Kubernetes. DNS is the best example: if the cluster is down, the network should still resolve. Two NanoPi NEO3 boards run AdGuard Home independently of the cluster, wired straight into the router's LAN ports rather than the switch. An old MacBook Air runs as a GitLab CI runner on the dedicated IOT Wi-Fi (192.168.100.0/24), kept off the cluster network entirely. The household's personal Wi-Fi (192.168.10.0/24) is a separate network too.
dns01 Primary AdGuard Home instance, providing network-wide ad blocking and local rewrites. Wired straight into the router's LAN ports, independent of the switch.
dns02 Secondary AdGuard Home instance. Also on the router's LAN ports, so the household keeps resolving even when the cluster doesn't.
gitlab-runner-mac It was going to be the next worker, but Linux on T2 hardware still shows driver instability, so it stayed out of the cluster. Now a dedicated GitLab CI runner, kept on the IOT Wi-Fi, deliberately off the cluster network while the experiment continues.
backup-raspi3 Retired from the cluster and moved to the IOT Wi-Fi network. Now runs the standalone RustFS instance that holds the Velero cluster backups (Manifests and PVC data).