
Built a proper 3-node Kubernetes cluster on Radxa Rock 5T SBCs with Talos, Cilium BGP, Longhorn, Gateway API, Flux
Most SBC clusters I see make compromises to fit the hardware: single GbE, SD/eMMC card storage, 8 GB RAM, k3s to keep resource usage down. I wanted a local twin of my Hetzner production cluster without any of those compromises. Something I could break, rewire, reflash, and rebuild.
The Radxa Rock 5T makes the difference:
- RK3588 (4 x A76 & 4 x A55)
- 24 GB LPDDR5 per node (72 GB total)
- Two native 2.5 GbE NICs - NIC-1 for management/BGP/ingress, NIC-2 isolated for pod-to-pod traffic only
- The entire cluster runs off one cable - Radxa 25W PoE+ module soldered onto each board, fed by a Ubiquiti Flex 2.5G PoE switch, powered by a single PoE+++ uplink from the router. No wall warts, no USB-C bricks
- PCIe 3.0 NVMe (Crucial P510 1 TB) - Longhorn actually performs
- First-class Talos Linux overlay
The stack:
- Talos Linux (no SSH, API-only, immutable)
- Cilium with full kube-proxy replacement
- Cilium BGP Control Plane → 3-way ECMP on a Ubiquiti Dream Router (all three nodes advertise each LB IP simultaneously, no ARP)
- Gateway API (Cilium native, no deprecated ingress-nginx)
- Longhorn with 3 replicas across the NVMe drives
- Flux for GitOps
👉 Full writeup with complete configs (Talos patches, Cilium HelmRelease, FRR BGP config for the UDR)
Curious what the more experienced folks here would do differently. 🤔 Feedback and roasts welcome.
u/Dual-O — 15 days ago