Raspberry Pi Kubernetes Cluster Build – Part 1

UPDATE 13/08/20: Updated post to reflect the more recent addition of the Raspberry Pi 4B 8GB and SSD Storage to the list.

When I wrote my goals post for this first quarter, I mentioned that I wanted to start a home lab project for a Raspberry Pi Kubernetes Cluster. In this series of posts, I will document each step of the build and talk through what use cases I am targeting. I will also share any gotchas and issues I run into!

Getting Started

Before starting out this project I already had a few Raspberry Pi components kicking about, I had a 3B+ that NGINX gave me last year and a 4B that I got at the local Pi store here in Cambridge sometime last year (but it’s been gathering dust not doing a lot since then).

Below I list out everything I am using in the project via Amazon links for ease of use, although I’ve sourced things from multiple places. As an Amazon Associate I earn from qualifying purchases. For a full list of all the kit I use at home visit my kit.co profile.

Shopping List

raspberry pi home lab shopping

I’ve taken a bit of a gamble on the power front with the Anker 60W adapter, it may not have enough power output for all of the RPi4’s, however I wanted to try and keep the number of electrical sockets used down to a minimum. If I see any issues, then I’ll just switch over to the official power supplies.

raspberry pi defect

One thing I would recommend is to give the boards a quick check over for any defects. One of mine has a small defect on the GPIO connector which meant that the fan pins won’t fit with the clearance available in the rack kit. Not to worry though, a quick trip down to see my Dad resolved that, he’s got all the equipment needed to reflow the board. Easier than sorting an exchange out.

Why am I doing this?

As I said in my previous post, I saw some good material in the community over the last couple of months, plenty of tweets and blog posts sharing builds and instructions. I wanted to give it a go for myself and have an interesting side project that I could use to create content and learn some new things.

I am going to start with running k3s as I want to try out k3sup and it is a good place for me to install OpenFAAS and get some additional function experience under my belt. I will be using guides already provided by Alex Ellis so I will be referencing those as I go along.

Beyond that I would like to see if I can connect this up to Azure DevOps as an environment target for pipelines. This will give me a simple cluster to test deployments against without the time required for me to spin-up something like AKS each time I do some more testing. A lot of the work I do in my own time comes out of my own pocket, so I try to be sensible with my use of cloud resources.

Finally, I will likely install some home automation software of some description, maybe Home Assistant. I already have a few devices around the home (Echo, Hue, SmartThings) but would like to see what I can roll myself and if I can integrate a little more.

What’s next?

Now I have everything delivered and ready to go I will need to physically assemble the rack and put the RPi’s in place. The kit comes with heatsinks and fans so keeping the cluster cool shouldn’t be an issue at all. I will post some pictures in my next post once it is complete, I don’t think I will cover all the process in detail as it is straightforward, and the kit comes with instructions.

My next post will cover the software required to start the build and my thoughts on customisation, unattended setup, reducing the power footprint and things like that.

Posted in

Jason

Professional consultant for over 10 years with 20 years in the IT industry, based in Cambridge, UK. I work with customers to design and implement IT solutions that meet a variety of needs, including backup, virtualization, cloud, and containerisation. An expert in building and managing public cloud services and private/hybrid cloud infrastructure. Experienced in Agile processes, Software Development Lifecycle and CI/CD pipelines. Comfortable working in all areas of business from sales cycle through to support. Able to communicate at all levels throughout the business and tailor messaging accordingly. Additional interests in Digital Ethics, Influencing, Marketing, Strategy and Business Processes. Outside of the technology industry, I enjoy all forms of gaming, ranging from classic table-top to online RPGs. I am also a keen cyclist.