DEV Community

Cover image for Raspberry Pi Kubernetes Cluster: Equipment (Issue #1)
Jules
Jules

Posted on • Originally published at juliantellez.com

Raspberry Pi Kubernetes Cluster: Equipment (Issue #1)

This is the first in a series on building a Kubernetes home lab from Raspberry Pi computers. Treat it as an informative guide rather than a tutorial. If you want the deep, step-by-step path, "Kubernetes the Hard Way" is the place to go.

Requirements

The usual Kubernetes prerequisites apply to each machine:

  • A compatible Linux host
  • At least 2GB of RAM per machine
  • 2 or more CPUs
  • Full network connectivity between all nodes
  • A unique hostname, MAC address and product UUID per node
  • The required ports open between nodes
  • Swap disabled, so the kubelet behaves correctly

Equipment

What I used to build the cluster:

  • Compute: 4 x Raspberry Pi 4 (one master node and three worker nodes)
  • Storage: 4 x 32GB microSD cards
  • Networking: an Ethernet switch, a router with DHCP, and a cable per node
  • Power: USB-C / micro USB cables and a multi-amp USB charger
  • Cooling: a case with fans and heatsinks
  • Optional: an external hard drive for extra storage
<img src="/blog-media/raspberry-pi-kubernetes-cluster-equipment/raspberry-pi-4.jpeg" alt="Raspberry Pi 4">
<figcaption>Raspberry Pi 4</figcaption>


<img src="/blog-media/raspberry-pi-kubernetes-cluster-equipment/microsd-card.jpeg" alt="MicroSD card">
<figcaption>MicroSD card</figcaption>


<img src="/blog-media/raspberry-pi-kubernetes-cluster-equipment/ethernet-switch.jpeg" alt="Ethernet switch">
<figcaption>Ethernet switch</figcaption>


<img src="/blog-media/raspberry-pi-kubernetes-cluster-equipment/router.jpeg" alt="Router">
<figcaption>Router</figcaption>


<img src="/blog-media/raspberry-pi-kubernetes-cluster-equipment/ethernet-cables.jpeg" alt="Ethernet cables">
<figcaption>Ethernet cables</figcaption>


<img src="/blog-media/raspberry-pi-kubernetes-cluster-equipment/usb-c-cables.jpeg" alt="USB-C cables">
<figcaption>USB-C cables</figcaption>


<img src="/blog-media/raspberry-pi-kubernetes-cluster-equipment/usb-charger.jpeg" alt="USB charger">
<figcaption>USB charger</figcaption>


<img src="/blog-media/raspberry-pi-kubernetes-cluster-equipment/cluster-case.jpeg" alt="Cluster case">
<figcaption>Cluster case</figcaption>


<img src="/blog-media/raspberry-pi-kubernetes-cluster-equipment/external-hard-drive.jpeg" alt="External hard drive">
<figcaption>External hard drive</figcaption>
Enter fullscreen mode Exit fullscreen mode

A good case with proper cooling makes a real difference once the nodes are under load, so it is worth following an assembly guide for the heatsink and fan setup.

What comes next

Later issues in the series cover configuring the nodes, SSH access, initialising the cluster, storage, and load balancing.


First published in my LinkedIn newsletter, Built from Scratch.


This was originally published on juliantellez.com. It is part of my newsletter on video, streaming, and building reliable systems from scratch: the architecture, the tradeoffs, and the occasional 3am incident.

If it was useful, subscribe for the next one. No spam, unsubscribe anytime. If you are building something similar and want to compare notes, say hello. I read every message.

Built from scratch, like everything here.

Top comments (0)