Kubernetes cluster
A DeskPi Super6c holds six Raspberry Pi Compute Module 5 boards and a small onboard switch. Five form a highly available Kubernetes cluster; the sixth runs the UniFi controller. Everything inside the cluster is deployed by Flux from a Git repository.
- Boards
- 6 × Raspberry Pi CM5, 8 GB RAM, 32 GB eMMC
- Storage
- 1 TB NVMe on one worker, for the SIEM
- Kubernetes
- v1.37 with kubeadm: 3 control planes, 2 workers
- API address
- A floating address held by kube-vip
- Networking
- Cilium, MetalLB, Traefik with the Gateway API
- Delivery
- Flux, with secrets encrypted by SOPS and age
Why this hardware#
Six boards in one enclosure, with a built-in switch and a single power supply, make a real multi-node cluster that fits on a shelf and draws little power. Three control planes means the cluster survives losing any one board.
The onboard switch has two external ports: one goes to the firewall, the other connects the Raspberry Pi that runs Home Assistant.


Go deeper#
- ProvisioningAnsible prepares every board the same way, from a fresh image to a ready node.
- Cluster networkingCilium for pods, MetalLB for addresses, Traefik and the Gateway API for web traffic.
- GitOps with FluxThe cluster pulls its state from Git, in a fixed order, with secrets encrypted in the repository.
- CertificatesA private certificate authority, limited by name constraints, with cert-manager issuing almost everything.