Aus Raspberry Pi Geek 08/2022

Raspberry Pi mit Kubernetes

Gui Yongnian / 123RF.com

Gui Yongnian / 123RF.com

Container-Hafen

Erik Bärwaldt

Professionelle Container-Lösungen sind keine Domäne leistungsstarker Computersysteme mehr. Auch auf einem Raspberry Pi 4 können Sie mit MicroOS und Kubic Kubernetes-Cluster aufsetzen und nutzen.

OpenSuse hat mit MicroOS bereits seit geraumer Zeit einen Ableger von Tumbleweed im Portfolio, der speziell für die Container-Orchestrierungslösung Kubernetes vorbereitet ist [1]. Das Kubic-Projekt, das auf MicroOS und Kubernetes aufsetzt, bietet dabei eine bereits komplett vorbereitete Container-Lösung [2].

MicroOS wurde primär als zuverlässige Basis für große Container-Umgebungen entwickelt, die dank des Rolling-Release-Konzepts von Tumbleweed keine aufwendige Wartung erfordert. Das sehr kompakte Betriebssystem nutzt dabei Btrfs als Dateisystem und installiert Updates sofort nach Verfügbarkeit in Tumbleweed. Durch die Integration von Snapshots lässt sich MicroOS im Problemfall jederzeit auf einen definierten funktionsfähigen Zustand zurückrollen. Ein weiterer Vorteil besteht in seiner Fähigkeit, durch transaktionale Updates und ein nur lesbares Dateisystem unerwünschte Wechselwirkungen im eigentlichen Betriebssystem zu vermeiden. Damit eignet sich das schlanke System optimal für Container-Lösungen wie Kubernetes.

Das ebenfalls von OpenSuse vorangetriebene Kubic-Projekt fasst dabei eine Kubernetes-Instanz auf Basis von MicroOS zusammen, wobei Kubic dank der integrierten Managementlösung Kubeadm sehr einfach Kubernetes-Cluster aufspannen kann.

Installation

Die einsatzfertige Kubernetes-Lösung Kubic gibt es für zahlreiche Plattformen. Neben herkömmlicher Hardware mit Intel/AMD-Architektur unterstützt sie auch verschiedene virtuelle Maschinen und Cloud-Instanzen. Zudem stehen Abbilder für den Raspberry Pi und andere ARM-basierte Computer zur Verfügung. Allerdings lässt sich Kubic nur auf RasPi-Systemen der vierten Generation sinnvoll einsetzen. Bei älteren Boards wie dem RasPi 3/3+ verursacht die geringe Arbeitsspeicherkapazität erhebliche Geschwindigkeitseinbußen durch Swap-Vorgänge im laufenden Betrieb.

Zur Installation laden Sie zunächst das gut 990 MByte große RAW.XZ-Archiv herunter und entpacken es in einen beliebigen Ordner Ihres Desktop-Systems. Anschließend bereiten Sie die MicroSD-Speicherkarte des Raspberry Pi vor, indem Sie sie neu formatieren. Anschließend transferieren Sie das nach dem Entpacken rund 3,1 GByte große RAW-Abbild mithilfe von Dd auf die Speicherkarte (Listing 1, erste Zeile).

Listing 1

Datenträger einrichten

$ dd if=Raw-Image of=/dev/Speicherkarte bs=2M; sync
$ sudo e2label /dev/USB-Stick ignition

Danach bereiten Sie einen USB-Stick vor. Er nimmt die Konfigurationsdatei des Werkzeugs Ignition auf, das zusammen mit Kubic kommt und beim ersten Hochfahren des Raspberry-Pi-Systems anhand von Konfigurationsdateien das Einrichten einiger Komponenten erledigt [3]. Leeren Sie den Stick zunächst, versehen Sie ihn mit einer einzigen Ext4-Partition und teilen Sie ihm dann das Label ignition zu (Listing 1, zweite Zeile). Anschließend hängen Sie den Speicherstick ins Dateisystem ein und legen in seinem Hauptverzeichnis einen neuen Ordner namens ignition/ an. Dazu können Sie alle unter Linux vorhandenen Werkzeuge nutzen.

Im nächsten Schritt legen Sie unter ignition/ eine leere Datei namens config.ign an. Mithilfe dieser Datei erzeugen Sie einen Benutzer mit entsprechenden Zugangsdaten, da das System noch keinen solchen angelegt hat. Über die genaue Syntax gibt dabei die ausführliche Ignition-Dokumentation [4] Auskunft. Statt herkömmlicher Authentifizierungsmethoden müssen Sie dabei einen SSH-Schlüssel nutzen, den Sie unter Linux mit dem Befehl ssh-keygen generieren. Beachten Sie außerdem, dass der Raspberry Pi beim Hochfahren vom DHCP-Server im lokalen Netz eine dynamische IP-Adresse zugewiesen bekommt (Abbildung 1).

Abbildung 1: Mithilfe einer Konfigurationsdatei richten Sie das System grundlegend ein.

Abbildung 1: Mithilfe einer Konfigurationsdatei richten Sie das System grundlegend ein.

Anlage eines Clusters

Nach dem ersten Hochfahren des MicroOS-Systems auf dem RasPi verbinden Sie sich mithilfe des SSH-Servers, den Kubic automatisch aktiviert, von einer beliebigen Workstation aus mit dem Mini-Rechner. Beachten Sie bitte dabei, dass der Startvorgang mehrere Minuten in Anspruch nimmt (Abbildung 2). Am Prompt geben Sie anschließend den Befehl kubeadm init ein. Nun legt Kubic einen entsprechender Kubernetes-Cluster an, was wiederum einige Minuten in Anspruch nimmt. Mit dem im Terminal ausgegebenen Befehl kubeadm join können Sie diesem Cluster weitere Nodes hinzufügen. Um den Cluster nutzen zu können, geben Sie anschließend noch die Befehle aus den ersten beiden Zeilen von Listing 2 ein.

Abbildung 2: Das Anlegen eines Clusters beansprucht einige Zeit.

Abbildung 2: Das Anlegen eines Clusters beansprucht einige Zeit.

Listing 2

Cluster vorbereiten

$ mkdir -p .kube
$ cp -i /etc/kubernetes/admin.conf .kube/config
$ kubectl apply -f /usr/share/k8s-yaml/weave/weave.yaml
$ kubectl apply -f Datei.yaml

Im nächsten Schritt richten Sie das Netzwerk-Provider-Addon Weave Net [5] ein, dessen Installationsdatei Kubic bereits mitliefert (Listing 2, dritte Zeile). Es ermöglicht die Kommunikation zwischen Nodes und auch Applikationen (Deployment). Nach einer kurzen Wartezeit ist das Networking aktiviert. Um dessen Funktion zu prüfen, geben Sie am Prompt den Befehl kubectl get nodes ein. In einer tabellarischen Übersicht sehen Sie anschließend die vorhandenen Nodes untereinander aufgelistet. In der Spalte STATUS erscheint dabei die Anmerkung Ready (Abbildung 3).

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben