Ramblings of an aging IT geek
← Ramblings of an aging IT geek
hardware

four raspberry pis, a kubernetes cluster, and absolutely no point

Building a four-node Raspberry Pi Kubernetes cluster that delivered no practical value whatsoever and was thoroughly worth doing anyway.

A small stack of single-board computers wired together on a desk

I built a Raspberry Pi cluster. Four Pi 4s, a little stacked acrylic case, a cheap unmanaged switch, and a USB power supply that I'm fairly sure is operating slightly outside its comfort zone. The honest summary up front: it taught me nothing I couldn't have learned in a kind cluster on my laptop in ten minutes, and I'd do it again tomorrow.

The plan, such as it was, came from the same impulse that makes people build model railways. I wanted to see the thing. I run distributed systems for a living, abstract boxes on a diagram, and there's something clarifying about having the nodes physically in front of you, blinking, warm, occasionally falling off the network because the SD card had a moment.

What actually went into it

The build was mostly tedium with occasional swearing. The genuinely fiddly parts:

  • Flashing four SD cards and not muddling which was which. I labelled them. I still muddled them.
  • Static IPs and hostnames so I could tell the nodes apart. pi-00 through pi-03, because cluster nodes should be cattle, but these four were absolutely pets and we all knew it.
  • Power. Four Pi 4s under load will happily pull more than a casual USB brick wants to give. The first symptom was the little lightning-bolt undervoltage icon and nodes randomly throttling, which presents as "Kubernetes is being weird" until you realise it's electrons, not software.

A close-up of the wiring and boards, the actual machine in the flesh

I went with k3s rather than full Kubernetes, because k3s is built for exactly this, ARM, low memory, single binary, and it came up almost embarrassingly easily. One node as the server, three as agents, a token copied across, and kubectl get nodes showing four Ready lines on my own little metal. I'll admit to a small, daft surge of pride at that.

What it taught me, which was nothing, except

Nothing useful, I said, and I stand by it. Everything I deployed to it (a couple of toy services, Prometheus, a load test against itself) would have run fine, faster, on any cloud free tier. The cluster is slow, the storage is an SD card praying for a quiet life, and the whole thing draws power to do roughly nothing.

But a few things did lodge. Watching a pod get rescheduled because I'd physically yanked the network cable out of a node is different from reading that it happens. The undervoltage saga was a genuinely useful reminder that the platform layer assumes hardware that behaves, and when the hardware doesn't, the symptoms surface miles away from the cause. And there's a category of confidence you only get from having broken and rebuilt a thing with your own hands, which no amount of terraform apply against someone else's datacentre will give you.

It sits on the shelf now, blinking away, hosting a Pi-hole and a couple of things that don't matter. Useless, lovely, and exactly the sort of project that reminds me why I got into this in the first place, before it was a job. Sometimes the return on a weekend is just that you enjoyed it.