Um mithilfe der Playbooks aus diesem Projekt einen Kubernetes-Cluster
einzurichten, müssen Material und Infrastruktur vorbereitet werden.
Anschließend werden die SD-Karten einzeln mit Raspbian beschrieben und mit dem
Playbook local-raspbian für den Headless-Betrieb konfiguriert.
Sobald alle Raspberry Pis online sind, wird Kubernetes mit dem Playbook
kubernetes aufgesetzt.
Zum erfolgreichen Ausführen dieser Anleitung müssen folgende Voraussetzungen erfüllt sein:
-
Raspberry Pis in beliebiger Anzahl und ebenso viele Speicherkarten und Netzteile stehen bereit.
-
Ein Linux-Rechner steht bereit, um die Speicherkarten zu flashen und die Ansible-Playbooks auszuführen. Dafür sind Balena Etcher[1] und Ansible[2] installiert, das Git-Repo zu diesem Projekt mit den Verzeichnissen
inventoryundplaybookist ausgecheckt und ein Image von Raspbian Lite[3] ist heruntergeladen. -
Ein Terminal mit
playbookals Current Working Directory ist geöffnet. -
Ein WiFi-Access Point mit Internetzugriff ist in Betrieb. Seine Einstellungen (IP, SSID, WPA2-Key) entsprechen den Angaben in den Dateien
inventory/group_vars/all.yamlundplaybook/local-raspbian.yaml. Der zuvor erwähnte Rechner ist mit dem Access Point verbunden. -
Die Inventory-Datei
inventory/k8s-cluster.yamlbildet den derzeitigen Cluster ab – enthält also keine Einträge unterhosts, falls ein neuer Cluster eingerichtet werden soll:nodes: hosts:
Die benötigte Zeit für die gesamte Einrichtung beträgt ca. 10 Minuten pro Raspberry Pi plus ca. 30 Minuten für den gesamten Cluster.
Die Schritte in diesem Abschnitt müssen für jeden Raspberry Pi einzeln durchgeführt werden.
-
Speicherkarte in den Linux-Rechner einlegen.
-
Raspbian-Image mit Balena Etcher auf die Speicherkarte flashen.
-
Raspbian-Playbook ausführen:
sudo ansible-playbook -i ../inventory/k8s-cluster.yaml local-raspbian.yaml -
Speicherkarte in den Raspberry Pi einsetzen und booten.
Wenn alle Raspberry Pis gestartet sind, wird die Installation mit dem Kubernetes-Playbook fortgesetzt:
ansible-playbook -i ../inventory/k8s-cluster.yaml kubernetes.yaml
Der Kubernetes-Cluster ist anschließend einsatzbereit.
Sollen zu einem fertigen Cluster weitere Nodes hinzugefügt werden, kann auch dafür diese Anleitung verwendet werden. Die Inventory-Datei darf dann nicht leer sein, sondern muss die bereits vorhandenen Nodes enthalten.