Mithilfe von Canonicals minimaler Kubernetes-Implementierung MicroK8s lässt sich mit bescheidenen Mitteln ein Cluster aus mehreren RasPis realisieren.
Die private Cloud zu Hause ist in Zeiten der allgegenwärtigen Ausforschung unserer Privatsphäre eine Idee, mit der immer mehr Menschen sympathisieren. Dass wir unsere Daten, Anwendungen und Entwicklungsumgebungen auf diese Art günstig erstellen, verwalten und vorhalten können, will dieser Artikel aufzeigen. Er kombiniert zwei Erfolgsrezepte, die – obwohl in verschiedenen Welten zu Hause – für den Einstieg ein gutes Team bilden.
Überall zu Hause
Vom Raspberry Pi, dem Mini-Rechner, der vor acht Jahren mit einem Bildungsauftrag gestartet ist und mittlerweile weit über 30 Millionen mal verkauft wurde, haben die meisten Computernutzer zumindest gehört. Viele nutzen einen oder mehrere der kleinen Rechner im privaten Umfeld. Auch in der Industrie ist der Raspberry Pi nicht mehr wegzudenken und übernimmt dort Automations- und Steuerungsaufgaben oder kommt als Testbasis für Proof-of-Concept-Untersuchungen (PoC) zum Einsatz. Der NetPi [1] ist nur eine von mehreren Versionen des Winzlings für den Industrieeinsatz.
In diesem Jahr stiegen unter anderem aufgrund der Corona-Pandemie die Verkaufszahlen des Raspberry Pi noch einmal signifikant. Aber nicht nur das, der kleine Rechner steht im Kampf gegen das Virus selbst in vorderster Front: So testen Medizinforscher an mehreren Universitäten verschiedene Open-Source-Ventilatoren für Beatmungsgeräte. Diese stammen aus dem 3D-Drucker und werden mit freier Software auf einem Raspberry Pi betrieben.
K8s und MicroK8s
Wir bleiben aber im privaten Bereich, indem wir eine Anwendung einbeziehen, die für das Big Business konzipiert wurde. Kubernetes [2], die bekannteste Orchestrierungssoftware für Linux-Container in der Cloud, ist als Begriff zwar allgegenwärtig, doch das Konzept bleibt für viele Nutzer schwammig, da sie dafür vermeintlich keinen Einsatzzweck haben. Das wollen wir ändern, indem wir beispielhaft zwei Raspberry Pi 4 zu einem Cluster verbinden und Canonicals minimale Kubernetes-Implementierung MicroK8s zur Orchestrierung verwenden.
Bei Kubernetes, oder kurz K8s, handelt es sich um eine von Google entwickelte Open-Source-Plattform, hinter der mittlerweile eine große Community steht, die das Projekt weiterentwickelt und pflegt. Was als einfaches Container-Orchestrierungswerkzeug begann, entwickelte sich in den letzten Jahren zu einer Plattform für das Bereitstellen, Überwachen und Verwalten von Anwendungen und Diensten über Clouds hinweg.
Der Dirigent
Was bedeutet in diesem Zusammenhang der Begriff Orchestrierung? Der aus der klassischen Musik entlehnte Begriff bezeichnet in der IT das Automatisieren und Koordinieren von Computersystemen, deren Diensten und Prozessen sowie die Kombination dieser Teile zu einem Workflow. Die kleinste Einheit von K8s, mit der Sie es zu tun bekommen, ist ein Pod, der aus einem oder mehreren Containern besteht. Container sind in diesem Zusammenhang virtuelle Behältnisse, die Anwendungen für mehr Sicherheit gegeneinander und nach außen hin isolieren.
Das System unterstützt selbstverständlich mehr als zwei Rechner, dabei ändert sich am hier beschriebenen Vorgehen grundsätzlich nichts. MicroK8s erlaubt sogar einen Single-Node-Cluster, um den es hier aber nicht gehen soll. Um einen geordneten Aufbau zu gewährleisten, stecken die für den Bericht genutzten Mini-Rechner in einem Cluster Case der Firma PiHut. Es kostet inklusive Lüfter für zwei Einheiten rund 10 Euro und ist nach oben unbegrenzt erweiterbar (Abbildung 1).

Abbildung 1: Das Cluster Case von PiHut sorgt für einen geordneten Aufbau und bringt pro Einheit zwei Lüfter mit, die sich für den Dauerbetrieb des Raspberry Pi 4 empfehlen.
Kubernetes ist ein komplexes System. Wir können daher hier nur an der Oberfläche kratzen, bieten aber damit einen Ausgangspunkt für eigene Recherchen und Experimente. Das Aufsetzen von Docker und Kubernetes sowie vielen anderen damit in Zusammenhang stehenden Anwendungen gestaltet sich für Anwender, die sich nicht täglich damit beschäftigen, komplex und fehleranfällig.
MicroK8s als Einstieg
Wir haben daher nach einem Weg gesucht, den Einstieg für Experimente mit K8s möglichst einfach zu halten, und wurden bei Canonical fündig. Das Unternehmen hinter Ubuntu verdient sein Geld mittlerweile im Enterprise-Segment mit Angeboten rund um die Cloud. In diesem Rahmen bietet die Software-Schmiede eine eigene Version von K8s an, die sie MicroK8s [3] nennt. Weitere Möglichkeiten, Kubernetes lokal zu erkunden, sind beispielsweise Minikube [4] und K3S [5].
Der Artikel gliedert sich in zwei Teile: In diesem ersten Teil beschreiben wir das Aufsetzen eines Clusters und dessen Inbetriebnahme. Der zweite Teil erscheint im nächsten Heft und beschäftigt sich mit den Einsatzmöglichkeiten des Raspberry-Pi-Clusters bei Ihnen zu Hause.
Voraussetzungen
Was brauchen Sie nun, um in diese Welt hineinzuschnuppern? Neben der gewünschten Anzahl von RasPi-4-Geräten mit 4 GByte RAM und der entsprechenden Anzahl von SD-Karten mit einer Größe von mindestens 8 GByte benötigen Sie ein Betriebssystem als Grundlage. Da wir im weiteren Verlauf ARM64/AArch64-Container-Images verwenden wollen und das offizielle Raspberry Pi OS derzeit noch keine offizielle 64-Bit Version anbietet, entschieden wir uns für Ubuntu 20.10 Server in der ARM64-Architektur [6]. Das sollte auch Kompatibilität garantieren, da beide essenziellen Zutaten aus demselben Haus stammen.






