Aus Raspberry Pi Geek 04/2021

Raspberry-Pi-Cluster mit MicroK8s und Ubuntu 20.10

© Computec Media Group

Hightech zu Hause

Ferdinand Thommes

Kubernetes gibt es auch in Spielarten, die das einfache Aufsetzen als Cluster mit einem Knoten auf heimischer Hardware unterstützen.

Der erste Teil unserer kleinen Serie über Kubernetes-Cluster aus mehreren Raspberry Pis beschäftigte sich in der letzten Ausgabe [1] mit dem Aufsetzen des Clusters mit Canonicals leichtgewichtiger Kubernetes-Distribution MicroK8s (sprich: Microkates). Diesmal geht es darum, Kubernetes auch via Minikube und in Reinform etwas näher kennenzulernen.

K8s im Homeoffice

Kubernetes (K8s) dient nach wie vor in erster Linie als Werkzeug zum Verwalten großer Mengen von Containern in Clustern für Unternehmen und die Industrie. Mitarbeiter mit Kenntnissen von K8s und verwandten Themen stehen gerade hoch im Kurs. Hier helfen der RasPi sowie ein älteres Notebook oder ein PC dabei zu entscheiden, ob Sie sich in dieser Richtung weiterbilden möchten. K8s – und somit MicroK8s, Minikube oder K3s – eigenen sich beispielsweise gut für die Belange von DevOps-Umgebungen, die in der Pandemie zunehmend im Homeoffice beginnen. Die Entwicklung in solchen Szenarien findet auf der eigenen Hardware statt und durchläuft eine CI/CD-Pipeline; das Resultat landet abschließend als Container auf den Produktionsservern.

Canonical investiert stark in K8s und bietet mit MicroK8s eine Plattform, die sich schnell installieren lässt, wichtige Kernkomponenten bereits mitbringt und weitere nur einige Mausklicks entfernt bereithält, etwa das in der ersten Folge installierte Dashboard. Das dabei verwendete Paketformat Snap ist am Desktop nicht unumstritten. In einer Kubernetes-Umgebung ergibt es aber Sinn, denn damit lassen sich automatisch Installationen aktualisieren und Sicherheitspatches einspielen. Das gewährleistet beim hohen Entwicklungstempo in diesem Bereich, dass Sie keine Aktualisierungen verpassen.

Gut eingebunden

MicroK8s unterstützt das bei Canonical entwickelte Modellierungswerkzeug Juju [2], mit dem Sie Cloud-Anwendungen schnell und effizient auf öffentlichen Clouds sowie auf physischen Servern bereitstellen, konfigurieren, verwalten, warten und skalieren. Sie verwenden Juju optional über die Kommandozeile oder eine GUI. Darüber hinaus unterstützt das Tool JAAS (Juju as a Service) und Helm [3] als Paketmanager.

Im Bereich Networking arbeitet MicroK8s mit CoreDNS, Flannel, Cilium und Ingress zusammen. Es verwaltet den externen Zugriff auf Dienste in einem Cluster und bietet Funktionen wie Lastausgleich, SSL-Terminierung und namensbasiertes virtuelles Hosting. Zum Monitoring binden Sie Tools wie Prometheus, Grafana, Elastic und andere ein.

All das lässt sich auch auf einem einzelnen RasPi 4 oder Notebook ausprobieren. Damit haben Sie einen Cluster mit einem Knoten (Node), der sich jederzeit um weitere Knoten erweitern lässt – dazu später mehr. Neben MicroK8s eignet sich auch Minikube hervorragend zum schnellen Aufsetzen eines einzelnen lokalen Knotens. Die abgespeckte Kubernetes-Distribution spielt besonders für Einsätze bei der dezentralen Datenverarbeitung per Edge-Computing und allgemein in der Welt des Internets der Dinge (IoT) eine Rolle.

Wir erstellen für diesen Artikel einen einfachen Kubernetes-Knoten mit Minikube. Wenn Sie bereits einen RasPi-Cluster aus dem ersten Teil dieser Reihe besitzen, verwenden Sie ihn, um darauf etwa eine Nextcloud zu installieren, indem Sie der Anleitung auf der Webseite von Kubernetes [4] folgen.

Hypervisor benötigt

Wir verwenden für diesen Test auf einem einzelnen RasPi 4 Ubuntu 20.10, da es das Paketformat Snap nativ unterstützt. Normalerweise würde für diese Aufgabe eine Server-Distribution zum Einsatz kommen. Wir greifen dagegen zur Desktop-Variante, weil damit das Erstellen von Screenshots leichterfällt. Minikube als eine Spielart von Kubernetes benötigt im installierten System eine virtuelle Maschine (VM). Wir verwenden Virtualbox, es eignen sich aber auch VMware oder KVM dafür. Unter Mac OS steht alternativ Hyperkit bereit, unter Windows Hyper-V.

Das alles funktioniert mit der alternativen Option --vm-driver=none auch mit Docker oder Fedoras Container-Software Podman anstelle einer VM. Da sich der ganze Vorgang aber bereits komplex genug gestaltet, nutzen wir eine VM, denn damit müssen Sie sich nach der Installation des Hypervisors um nichts weiter kümmern. Um zu prüfen, ob die CPU Ihres Rechners Virtualisierung unterstützt, tippen Sie bei Intel grep -c vmx /proc/cpuinfo und bei AMD grep -c svm /proc/cpuinfo. Hier erscheint die Zahl der CPU-Kerne, die Virtualisierung unterstützen. Ist sie nicht aktiviert, müssen Sie die Virtualisierung gegebenenfalls im BIOS oder UEFI freigeben.

Kubectl

Snap kommt gleich zu Beginn zum Einsatz, wenn wir als Administrationswerkzeug das bereits aus dem ersten Artikel bekannten Kubectl installieren. Dieses mächtige Kommandozeilentool lässt sich unter Kubernetes, MicroK8s und Minikube nutzen. Die Installation erfolgt mit dem Befehl snap install kubectl --classic. Daneben installieren Sie mit den Befehlen aus Listing 1 Minikube selbst (Abbildung 1). Vorab gilt es, das Paket curl einzurichten, da Ubuntu das nicht automatisch erledigt.

Abbildung 1: Auf die Installation von Kubectl folgt das Aufsetzen von Minikube. Es stehen Pakete für verschiedene Betriebssysteme zur Verfügung.

Abbildung 1: Auf die Installation von Kubectl folgt das Aufsetzen von Minikube. Es stehen Pakete für verschiedene Betriebssysteme zur Verfügung.

Listing 1

Minikube einrichten

### Unter Ubuntu und Debian
$ curl -LO https://storag.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
$ sudo dpkg -i minikube_latest_amd64.deb
### Für ARM
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm
$ sudo install minikube-linux-arm /usr/local/bin/minikube
### Für ARM64
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64
$ sudo install minikube-linux-arm64 /usr/local/bin/minikube
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 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