Raspberry Pi Kubernetes Cluster bauen – Konfiguration
Im letzten Teil zu Raspberry Pi Kubernetes Cluster bauen – Setup wurden 4 Raspberry Pis eingerichtet und in ein gemeinsames Netzwerk gesteckt. Sie können sich gegenseitig pingen und über SSH anmelden. Kluge Hostnamen zeigen sofort wo man sich befindet. Als nächstes wird Kubernetes konfiguriert.
Raspberry Pi Kubernetes Cluster bauen – Konfiguration
In diesem Beitrag geht es ans eingemachte. Wir konfigurieren Kubernetes und schließen die einzelnen Raspberry Pi Rechner damit zu einem logischen Cluster zusammen. Auf diesem können wir später Docker Container ausführen.
Docker installieren
Docker wird am Raspberry Pi mit einem Script installiert. Dieses kann man direkt von Docker beziehen. Die Installation + Konfiguration der Nutzer für die Gruppe docker kann man mit folgender Zeile ausführen:
curl -sSL get.docker.com | sh && sudo usermod pi -aG docker && newgrp docker
Swap file deaktivieren
Kubernetes hat am Raspberry offenbar ein Problem mit dem Auslagerungsspeicher (Swap), weshalb dieser besser deaktiviert werden sollte. Den aktuellen Status zum Swap bekommt man mit:
sudo swapon --summary
Deaktivieren kann man ihn über folgenden Befehl:
sudo dphys-swapfile swapoff && sudo dphys-swapfile uninstall && sudo systemctl disable dphys-swapfile
Eine kurze Kontrolle mit dem Befehl
top
zeigt, dass der Speicher nun nicht mehr ausgelagert wird
Der zuvor gezeigte swapon –summary Befehl zeigt zur Bestätigung auch keine Ausgabe mehr.
cmdline.txt bearbeiten
Als nächstes werden der /boot/cmdline.txt Datei folgende Zeilen hinzugefügt. Am besten ihr öffnet die Datei mit dem Editor eurer Wahl (in meinem Fall nano):
sudo nano /boot/cmdline.txt cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory
Diese 3 Befehle müssen unbedingt am ende der ersten Zeile stehen, ansonsten haben sie keine Wirkung und der Swap Speicher wird nach einem Neustart wieder verwendet. Danach ist ein Neustart nötig:
sudo reboot
Kubernetes installieren
Um Kubernetes über den Paketmanager zu installieren müssen wir erst einen neue Quelle in die sources.list Datei eintragen.
sudo nano /etc/apt/sources.list.d/kubernetes.list #deb http://apt.kubernetes.io/ kubernetes-yakkety main deb http://apt.kubernetes.io/ kubernetes-xenial main
Danach brauchen wir noch den gpg Schlüssel von Google:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-get update
aktualisiert die Paketquellen. Danach sind wir soweit Kubernetes zu installieren:
sudo apt-get install kubeadm
Mit dem Kommando wird die aktuelle Version installiert. Das ist auch so zu empfehlen.
Optional für den Raspberry Pi 1
Falls ihr ein Downgrade (Details dazu im Worker Artikel) auf Version 1.15 machen müsst geht das so:
sudo apt-get install kubelet=1.5.6-00 kubectl=1.5.6-00 kubeadm=1.5.6-00
Hinweis:
Falls sich jemand fragt warum ich die alte Quelle xenial verwende und nicht yakkety… ich habe das getestet und dort gibt es noch keine für den raspberry Pi notwendigen armhf Pakete:
Damit ist die Basiskonfiguration fertig. Du musst diese Schritte nun auf jedem einzelnen Raspberry Pi der im Cluster verwendet wird wiederholen. In den nächsten beiden Artikeln beschreibe ich dann die individuellen Schritte die danach am Master und auf allen Workern ausgeführt werden müssen.
Fazit
Um einen Raspberry Pi Kubernetes Cluster bauen zu können bedarf es eine Menge Konfiguration. In diesem Beitrag habe ich für dich die Basiskonfiguration genau dokumentiert die auf jedem einzelnen Pi im Cluster durchzuführen ist. Weiter geht es mit der speziellen Konfiguration vom Master, und danach der einzelnen Worker Nodes.
Alle Artikel dieser Serie:
Sehr nette Anleitung, aber habe ich keine plan auf welchem node nun was gemacht werden soll, dass finde ich sehr schlecht. Für ein leihen ist das nicht zu verstehen und es funktioniert leider kein bisschen. Schade das ist zeitverschwendung. Warum kann man nicht eine vernünftigen Ablaufplan schreiben…ZB
node1 —das und das
node2 das und das ???
Ich werde leider nicht schlau daraus auch nicht wenn ich nur auf den pis arbeite die in den Screenshorts zu sehen sind. ich bekomme keine Fehlermeldungen aber es geht dennoch nicht. Da war die mühe für umme, für den Ersteller eben so wie der Nachmacher!!! Für eine Hilfe an meine mail bin ich dennoch sehr sehr dankbar…..vielleicht bin ich auch nur zu dämlich.
wenn man doch nur lesen könnte……..