Hardware¶
Description¶
If you trying to do something similar, my suggestion is using Raspberry Pis 4 with at least 4GB of RAM ( 8GB is better). The main limiting factor is memory, so the more memory you have the better.
The hardware I am currently using is:
- 4 x Raspberry Pi 4 Model B+ with 8GB Ram
- 6 x Raspberry Pi 4 Model B+ with 4GB RAM
- 10 x USB
- 10 x Noctua NF-A4x20 5V PWM
- 10 x DSLRKIT 5V 12V PoE HAT
- 4 x Onvian USB 3.0 To Sata Adapter Converter Cable USB3.0
- 1 x 5TB Seagate BarraCuda
- 3 x 4TB WD Red Plus
- 1 x StarTech 2-POST DESKTOP RACK - 8U
- 1 x StarTech SERVER RACK SHELF VENTED 1U ST
- 1 x UCTRONICS 19 inch 3U Rack Mount
- 1 x Raspberry Pi 19 inch Rack Mount 1U
- 1 x Roline Steckdosenleiste (Rack)
- 1 x Netgear GS116PP: 16 Port Smart Switch
- 1 x Buffalo 11ac 1166 Gigabit Wireless Dual Band Router
You will also need jumper cables for the fans.
Some images from the cluster:
I will not describe on how to set up DHCP, DNS, e.t.c servers because they are out of the scope of this project. Before starting I would suggest having a good convention of naming your devices, because when (not not if -- do not doubt about the fact that hardware will fail) the hardware fails it will be difficult to locate without good naming conventions. I would also suggest of not hardcoding IPs, because if you have to scale your network and everything is hardcoded, then you are out of luck.
I would not suggest setting up the DHCP, DNS server on the kubernetes, because you will have a chicken and egg problem. If there is a total failure (e.g. a power outage) you will not be able to restore the cluster. If the DHCP, DNS server is inside the cluster, then the services will not be able to start because the cluster is not up, and the cluster is not up, because there is no DHCP, DNS server. Currently I am using a DD-Wrt router for these services. In case the router fails, I always have on stand by an another router, that I can set up with the same parameters. Of course they will be a downtime, but you have to choose your fights.