Cluster hardware and operating system

2024-05-30

This article is about how and why I made specific decisions regarding the hardware and operating system.

Hardware

Quantity

In the introduction article I have set a few requirements and rules for this project, one of those was to build something that is reasonably resilient to failures, which means having more than one piece of hardware, so that some sort of high availability or failover procedure can be implemented. For my use case, automatic failover1 would be enough to handle the workloads even if it creates some downtime.

This means that at this stage I would exclude big servers such as rack servers, desktop computer or laptops. The choice would then go to some very small form factor such as nano-ITX or smaller.

Here I reduced the choice to devices such as the Asus NUC or single board computes such as the Raspberry Pi. There are multiple alternatives to choose from for each of those.

Power consumption

The Raspberry Pi 4 Model B is known to have relative low power consumption at an averate of 5 watts. It is also known that eventhough it doesn’t consume much, it is less efficient than an Asus NUC; but what I’m searching is quantity over quality, so for my use case it is better to have multiple less powerful machines instead of multiple very capable ones, that I will probably never use at its best.

Support

Even though the Raspberry Pi is based on ARM64, which has not the same software availability as the AMD64 architecture, the community is so big and active that one can find support for almost anything.

Noise

As far as I know, fanless hardware is quite possible with Rsapbery Pi (at the very least until the RPi 5). Can’t say the same about classic computers, which tend to increase temperature with less stress.

Software

Personal knowledge

I do have a little professional experience with Kubernetes, I know the concepts and just need some refresh for the basics. Advanced topics are those I’m mostly interested in learning here.

So even though I have read quite good things about Proxmox, I haven’t even tried to see if it meets my needs.

Lightweight OS

I do use a Debian based distro on my work laptop and am a huge fan of it, even though I can’t call myself an expert, I can do the basic stuff, and definitely want to learn more.

Hence why I chose to go with DietPi, which is also the most lightweight alternative I could find. Bonus points: it’s installation is configurable via a simple text file, and so replicable with very small effort. A new node can be up and running in a few minutes.


  1. The system should move workloads from a problematic node to a healthy one. This might lead to downtime.↩︎