Software Engineer

Raspberry Pi Kubernetes Cluster - Part 1

· by jsnby · Read in about 3 min · (534 Words)
raspberry pi kubernetes

This is part 1 of a series. Part 2

I’ve decided to build a small home Kubernetes cluster for various reasons. I do a lot of k8s stuff at work and it would be nice to have a dev cluster other than the Docker Desktop built-in k8s cluster (it’s usually broken more often than it’s working). I have a few containerized workloads I run on my Synology NAS, but it’s not very powerful. I was thinking of building a cluster out of three Intel NUCs or using three small BeeLink systems, but the price was a bit prohibitive and they likely wouldn’t fit in my network rack. The Raspberry Pi 4’s are attractive because you can get them loaded with up to 8GB of RAM and power them with a POE hat so I started seriously looking into that as my platform. I found a nice DIN Rail mounting system and even a nice little 1U Chassis that would have fit perfectly into my network rack. Using Raspberry Pi 4’s Model Bs, I’d still need to get a POE switch (I’ve been shopping for one for a while as I want to install a few security cameras and an additional WiFi access point and ditch my current POE injector setup). Thankfully, the Model B’s have been out of stock pretty much everywhere and my attempts to get a hold of a few have failed.

I started using rpilocator.com and noticed the Compute Module 4’s (CM4s) were popping up once in a while at US distributors. I initially discounted the CM4’s because I didn’t want to also have to buy an IO board, POE stuff, etc. to get them to work, but that’s when I stumbled across the DeskPi Super6c. I decided to see if I could snag a few CM4’s and started watching the @rpilocator Twitter feed. After about a week I was able to order 3 Raspberry Pi 4’s with 8GB of RAM and 16GB eMMC (SKU CM4108016) which aren’t exactly what I wanted (I wanted ones without WiFi and without the eMMC memory), but they will work. After the order was confirmed, I ordered the DeskPi Super6c. Once I have the cluster up and running, I’ll be able to expand it by adding three additional CM4 nodes (if the need arises). I also like that I will be able to add some M.2 2280 SSD’s for some fast local disk.

Hardware BOM thus far:

Originally, I had intended to boot the CM4’s off an SD card, but I failed to realize that you can’t boot from SD if the CM4’s have eMMC. This forced me to order a compute module IO board so I could flash the eMMC with the OS image. I used the Raspberry Pi Imager to customize and flash each CM4 with the latest Raspberry Pi OS 64GB lite image.

More to come…