Raspberry Pi Kubernetes Cluster bauen – Worker
Ein Kubernetes Cluster besteht per Definition aus mindestens 2 Knoten. Nach dem einen Master gibt es beliebig viele Worker Nodes die bei der Bewältigung der Aufgaben helfen werden. In meinem Fall werden das 3 unterschiedliche Raspberry Pi Modelle sein. Ob das gut geht?
Raspberry Pi Kubernetes Cluster bauen – Worker
Worker können super einfach dem Kubernetes Netzwerk hinzugefügt werden. Dazu ist nur ein einziger Befehl notwendig, der am Ende der kubeadm init Prozedur am Master Node angezeigt wurde:
kubeadm join IPADRESSE --token TOKEN --discovery-token-ca-cert-hash HASH
wobei die groß geschriebenen Platzhalter mit den tatsächlichen Werten vom Master Node ersetzt werden müssen. Am Raspberry Pi 2, dem ersten Worker Node lieferte der erste Versuch gleich einen Erfolg:
Man wird auch gleich hingewiesen, dass man am Master mit dem Befehl
kubectl get nodes
den Erfolg prüfen kann. Das habe ich auch gleichgemacht und siehe da, der Worker Node wurde erkannt:
Das war es auch schon. Die Konfiguration vom Worker Node unterscheidet sich vom Kubernetes Basissetup nur durch dein Aufruf eines Befehls. Trotzdem kann man auf Probleme stoßen. Ich habe einige davon zusammengefasst.
Problemlösung
Meine Worker Erfahrung hat gleich mit einem Problem begonnen. Der Befehl kubeadm lieferte folgende Fehlermeldung:
Ungültiger Maschinenbefehel
beziehungsweise
Illegal Instruction
falls ihr die Sprache auf englisch eingestellt habt. Das Problem ist die alte ARM v6 Architektur vom Raspberry Pi 1. In den üblichen Tutorials ist immer zu lesen, dass man Pi 4 und Pi3 für das Cluster verwenden soll. Da ich aber noch ältere Hardware habe und ich kein Geld ausgeben will möchte ich Kubernetes auch auf älteren Raspberry Pi Geräten ausführen. Was tun?
Installiert ist bei mir aktuell die Version 1.16.3, welche offensichtlich keinen Support mehr für die alte Plattform bereitstellt.
Ein Lösungsansatz ist ein Downgrade auf eine alte Kubernetes Version. Das ist im Normalfall nicht zu empfehlen, ich denke ich habe wohl keine andere Wahl (außer mir Kubernetes mit den nötigen Änderungen selber zu kompilieren….). Das habe ich wie folgt gemacht:
sudo apt-get remove kubeadm sudo apt-get install kubelet=1.5.6-00 kubectl=1.5.6-00 kubeadm=1.5.6-00
Nach dem Downgrade funktioniert der Aufruf von kubeadm wie erhofft. Ob es nun eine gute Idee ist mit dem Raspberry Pi 1 weiterzuarbeiten ist eine gute Frage. Ideal ist das nicht, ein Rechner mit mindestens 1 GB RAM ist in jedem Fall zu empfehlen.
Fazit
Der Raspberry Pi Kubernetes Cluster Worker ist mit einem einzigen Befehl bereit zur Arbeit. Ich habe in meiner Recherche aber auch Probleme mit dem Raspberry Pi 1 bekommen die ich über ein Downgrade von Kubernetes lösen konnte. Im letzten Artikel schließe ich die Kubernetes Konfiguration endlich ab.
Alle Artikel dieser Serie:
Hallo,
erstmal vorweg – das ist ein sehr interessanter Blog.
Ich habe versucht die Anleitung hier mit 4 x Raspberry Pis 2 umzusetzen. Leider laufen bei mir die Raspberry Pi 2 Model B V1.2 in das gleiche Problem wie die Raspberry Pi 1 bei dir. Die V1.1 hingegen laufen problemlos. Gibt es hier einen Workaround außer dem Downgrade von Kubernetes?
Grüße
David
Okay, hab meinen Fehler bemerkt. Es handelt sich nicht um einen Raspberry Pi 2 V1.2, sondern um einen Raspberry Pi 1 V1.2. Dann hat es sich geklärt und die Kommentare können gelöscht werden. Trotzdem vielen Dank für die sehr gute Anleitung. 😉