Homelab Raspberry Pi Kubernetes Cluster

A platform to deploy my self-hosted services onto with almost $0 recurring costs.

Previously, I was running a few things on a Raspberry Pi 3B+. Mainly, Blocky as an ad-blocking local dns cache and some adventures with Home Assistant. A Kubernetes cluster will enable me to easily set up new things and have proper monitoring as well.

Hardware Acquisition

I bought 3 Raspberry Pi 4 4GB boards from Canakit. I also bought a pack of 5 SD cards. I got a 6 port usb charging station and USB-A to USB-C cables to power them.

I have 3 spare ethernet ports on my router so I will be using that directly for now. In the future, I may get a switch for them to connect to.

Setup

I’m planning to install Raspian Lite and use k3sup to install k3s. I looked into using k3os directly, but it seems it’s still not the easiest for a Raspberry Pi issue.

I will try to manage the cluster in a GitOps style. As such, I will disable installing the Traefik Ingress Controller and Service Load Balancer by default and instead install them separately (or choose a different option).

Networking

I will start out with the default flannel with vxlan, but am considering the wireguard backend. I would like to be able to access some services in the cluster using something like Tailscale as well.

This might involve running separate ingress controllers like here.

Monitoring

I’m going to deploy the standard kube-prometheus set up with the Prometheus Operator using this repo. It has k3s specific settings.