Motivation: My initial motivation was to learn more about Kubernetes. When my little home server (a Zotac CI 327) had an outage caused by a SSD failure I started thinking of moving from simple Docker to Kubernetes and building a complete failover and load-balancing cluster. I took this as a chance to learn Kubernetes from scratch.
At that time I already had experience with Docker on different architectures (ARM32 and x86) and read a lot about building Kubernetes Clusters based on Raspberry PIs. Most of these manuals and posts using outdated software or complicated workarounds. I wanted a comprehensible description as easy as possible - which I will summarize in the following series of blog posts:
Part 6: Deploy a cert-manager and ingress-controller
Part 7: Deploy Kubernetes-dashboard and metrics-server
The final hardware setup will look like this:
The setup contains one Rasperry Pi as master node and 3 PI's as worker nodes a NFS storage and x86 nodes.
Remark: The DNS forwarder is an old Raspberry PI 2 which uses Dnsmasq to do DHCP and also forwarding local DNS requests to an internet DNS provider. This is optional and not needed for this guide. (It's similar to the well known Pi-Hole project)
Thought and done: I spent money for 4 Rasperry Pi 4 with 4 GB of memory at a local electronic dealer that made a special offer at that time and bought all other equipment at Amazon.
This is a list of the equipment:
|6-port 60W USB Power adapter
|6-Layer Raspberry PI tower case (only 4 used)
|4 x USB-C to Micro-USB adapter
|8-port L2 Ethernet switch
|32 GB microSD flash card
|5 x 0,5m CAT7 flat ethernet cable
If you are interested - this is a prepared Amazon shopping list:
After assembling all parts and first power on test it the result should look like this:
Hint: A Raspberry PI 3B/3B+ is a lot cheaper and also capable of the 64-bit architecture and handling all necessary containers for a Kubernetes cluster, but the Pi 4 with 4 GB memory performs a lot better. To reduce overall costs the project can also be started based on RPI 3, but the K8 master node should be final - because it's not easy to exchange the Kubernetes master afterwards.
The next part of the series will describe the OS preparation.