Himbeercluster (k3s) Teil 1: Setup

Der vermutlich einfachste Weg ein Rechnercluster zu nutzen ist aktuell Kubernetes. An diesem Punkt werden vermutlich schon die ersten Leute aufschreien, dass ein Raspberry Pi, selbst in der Raspberry Pi 4 mit 8GB RAM Variante, eine absolut ungeeignete technische Basis wäre, selbst ein durchschnittlicher Laptop mehr leisten würde, uuund und und und und….

Da ist natürlich was dran. Ein Produktivcluster für den Einsatz in einem großen Unternehmen können wir so natürlich nicht auf die Beine stellen. Aber das ist auch gar nicht der Punkt hier. Zum einen kann ich aus eigener Erfahrung sagen, dass man immens viel lernt, wenn man mal so ein Bare-Metal Kubernetes von null an aufsetzt und etwas damit herumexperimentiert (was man dann auch nachher 1:1 auf „sinnvolle“ Cluster übertragen kann), zum anderen ist im heimischen Netzwerk ja dann doch tendenziell nicht ganz so viel los wie in einem Rechenzentrum von Google und so ein Cluster ist ein schöner Weg kleine Dienste (Gitea, Pi-Hole, Minecraft,….) für den Heimgebrauch im eigenen Netzwerk anzubieten.

Außerdem… Warum zum Teufel nicht? 😀 Welcher Nerd, der etwas auf sich hält findet die Idee sagen zu können „Ich hab ein Rechnercluster in meiner Wohnung stehen“ nicht an sich schon irre cool 😀 Ok, vielleicht bin auch nur ich so wahnsinnig, aber zurück zum Thema:

Die erste Frage, die sich stellt ist, welche Variante von Kubernetes wollen wir eigentlich nutzen? Die „große“, komplette Variante (quasi das Original k8s) bekommt man angeblich auch auf dem Raspberry Pi 4 zum laufen, durchaus auch nutzbar, aber persönlich würde ich eher zu SUSEs k3s (https://k3s.io) oder Canonicals microk8s (https://microk8s.io) greifen. Dabei handelt es sich um etwas kompaktere Versionen, die mit etwas weniger Ansprüchen an die Hardware daher kommen und wir wollen ja nachher so viel Leistung wie möglich für das Cluster zur Verfügung haben. Für diesen Artikel habe ich mich jetzt für k3s entschieden.

Material:

Hat man nun vor der Himbeere ein paar Kollegen an die Seite zu stellen und ein Cluster aufzusetzen braucht man natürlich erstmal Material. Hier ist was ich benutze und empfehlen würde (die Links sind Affiliate Links, ich bekomme also eine kleine Provision, falls ihr darüber kauft):

  • Zunächst mal natürlich mindestens zwei Raspberry Pi 4. Ich würde dringend die 8GB Variante empfehlen, mit der 4GB Variante müsste man aber auch noch davon kommen.
  • Mindestens eine Mini-SD Karte pro Raspi. Die Karte darf gerne etwas größer sein, mehr als 3264GB braucht man aber eigentlich nicht, wir werden später ein NAS nutzen um die Daten der Services, die im Cluster laufen zu sichern.
  • Da ein Cluster davon lebt, Daten so schnell wie möglich zwischen den Knoten hin und her schieben zu können empfiehlt sich für den Netzwerkzugang das gute, alte Ethernetkabel.

Damit haben wir das Pflichtprogramm an Material zusammen. Im Folgenden erwähne ich noch 2-3 Dinge, die ich benutze und die sich als praktisch erwiesen haben, aber für das Ziel dieses Artikels nicht unbedingt nötig sind.

Wenn man anfängt ein Cluster mit mehr als zwei Knoten zu bauen erstickt man früher oder später in massivem Kabelsalat. Dazu kommt ja auch, dass man die Netzwerkkabel irgendwo unterbringen muss und der durchschnittliche Heimrouter hat dann ja auch nicht soooo viele Lan-Dosen. Die Lösung?

POE!

Oder genau genommen: POE+

POE steht for Power Over Ethernet (das „+“ von „POE+“ steht einfach nur für etwas mehr Power Over Ethernet). Hier kommt der Strom, wie der Name vermuten lässt direkt über das Ethernetkabel. Nötig dafür sind aber zwei Dinge:

  • Ein POE+ fähiger Switch
  • Ein POE+ Hat pro Raspberry Pi. Ich selbst benutze den originalen POE+ Hat der Raspberry Pi Foundation, der scheint aber aktuell nicht besonders gut zu bekommen zu sein. Wichtig ist hier nur, dass es sich tatsächlich um einen POE+ Hat nach IEEE 802.3at Standard handelt. Der reguläre POE Hat (IEEE 802.3af) liefert etwas zu wenig Power um den Raspi 4 in jeder Lebenslage sicher zu versorgen.

Das wäre es auch eigentlich schon an Material. Damit es nicht ganz so chaotisch wird empfiehlt sich vielleicht noch ein Gehäuse. Hier kann ich aber nichts direktes empfehlen, da grade auch die Wahl des POE+ Hats die Höhe des Raspberry Pi’s doch stark beeinflusst. Eine sehr einfache Variante ist ein stapelbares „Gehäuse“ wie dieses. Es wird zwar nicht nutzbar sein wie vom Verkäufer beworben, aber die Standoffs zwischen den einzelnen Ebenen lassen sich stapeln und so der Abstand zwischen den Schichten vergrößern. Dazu ist das Gehäuse recht offen, was dem Temperaturmanagement zugute kommt. Für Leute, die einen 3D Drucker besitzen empfiehlt sich auch ein Blick auf Thingiverse, da es dort für jede denkbare Variante von Himbeerenkonfiguration eigentlich eine Unterbringung zu finden gibt… Wenn man bereit ist etwas Geld in die Hand zu nehmen gibt es auch schon professionell gefertigte Schienen für 19 Zoll Serverschränke um Raspis samt POE+ Hats unterzubringen.

Damit hätten wir die Hardware Seite abgehakt. Im nächsten Teil geht es weiter mit der Vorbereitung der Software.