Edge-Computing verlagert Rechenleistung dorthin, wo Daten entstehen, und stellt damit neue Anforderungen an Infrastruktur, Betrieb und Automatisierung. Kubernetes bietet sich auch auf Mini-PCs und Raspberry Pis als Orchestrierungsplattform an, wenn Architektur und Hardware sorgfältig gewählt sind. Ob MicroK8s, kubeadm oder K3s – moderne Distributionen ermöglichen hochverfügbare Cluster auf kleinstem Raum. In dieser Workshopserie erfahren Sie, wie Sie Kubernetes sinnvoll im Edge einsetzen, wo die Unterschiede zu klassischen Rechenzentren liegen und welche technischen Entscheidungen einen stabilen Betrieb ermöglichen.
Produktionsumgebungen, Fertigungsanlagen und verteilte Sensor-installationen benötigen häufig flexible IT-Infrastrukturen direkt am Entstehungsort der Daten. Edge-Computing verlagert Rechenleistung an den Rand der Infrastruktur. Daten lassen sich dadurch lokal verarbeiten und nur in aggregierter Form weiterleiten. Sie reduzieren Latenzen, sparen Bandbreite und reagieren schneller auf Ereignisse vor Ort. Gerade kleine Unternehmen können dafür Mini-PCs oder Raspberry-Pi-Geräte einsetzen.
Raspberry Pi und herkömmliche Mini-PCs eignen sich inzwischen für den Betrieb vollständiger Kubernetes-Cluster. Dafür stehen unterschiedliche Ansätze zur Verfügung, die wir in diesem Beitrag praxisnah beleuchten. MicroK8s aktiviert seine High-Availability-Funktion beispielsweise automatisch, sobald mindes-tens drei Knoten im Cluster vorhanden sind. Für klassische Kubernetes-Installationen kommen neben MicroK8s auch kubeadm und K3s infrage. Wir zeigen, warum Kubernetes auf Mini-PCs und Raspberry Pi sinnvoll ist, wie Sie HA-Cluster mit MicroK8s oder kubeadm aufbauen und welche Unterschiede zu großen Rechenzentrums-Clustern bestehen.
Gründe für Kubernetes am Edge
Edge-Szenarien entstehen überall dort, wo Geräte Daten liefern, die unmittelbar verarbeitet werden müssen. Dazu zählen Produktionshallen, Fuhrparks, Lagerhäuser oder IoT-Installationen. Ein Kubernetes-Cluster aus Mini-PCs übernimmt in solchen Umgebungen die Verteilung und Überwachung containerisierter Anwendungen. Sensorwerte werden lokal ausgewertet, Machine-Learning-Modelle laufen direkt an der Datenquelle, und die Latenzen bleiben gering.
Produktionsumgebungen, Fertigungsanlagen und verteilte Sensor-installationen benötigen häufig flexible IT-Infrastrukturen direkt am Entstehungsort der Daten. Edge-Computing verlagert Rechenleistung an den Rand der Infrastruktur. Daten lassen sich dadurch lokal verarbeiten und nur in aggregierter Form weiterleiten. Sie reduzieren Latenzen, sparen Bandbreite und reagieren schneller auf Ereignisse vor Ort. Gerade kleine Unternehmen können dafür Mini-PCs oder Raspberry-Pi-Geräte einsetzen.
Raspberry Pi und herkömmliche Mini-PCs eignen sich inzwischen für den Betrieb vollständiger Kubernetes-Cluster. Dafür stehen unterschiedliche Ansätze zur Verfügung, die wir in diesem Beitrag praxisnah beleuchten. MicroK8s aktiviert seine High-Availability-Funktion beispielsweise automatisch, sobald mindes-tens drei Knoten im Cluster vorhanden sind. Für klassische Kubernetes-Installationen kommen neben MicroK8s auch kubeadm und K3s infrage. Wir zeigen, warum Kubernetes auf Mini-PCs und Raspberry Pi sinnvoll ist, wie Sie HA-Cluster mit MicroK8s oder kubeadm aufbauen und welche Unterschiede zu großen Rechenzentrums-Clustern bestehen.
Gründe für Kubernetes am Edge
Edge-Szenarien entstehen überall dort, wo Geräte Daten liefern, die unmittelbar verarbeitet werden müssen. Dazu zählen Produktionshallen, Fuhrparks, Lagerhäuser oder IoT-Installationen. Ein Kubernetes-Cluster aus Mini-PCs übernimmt in solchen Umgebungen die Verteilung und Überwachung containerisierter Anwendungen. Sensorwerte werden lokal ausgewertet, Machine-Learning-Modelle laufen direkt an der Datenquelle, und die Latenzen bleiben gering.
Die eingesetzten Geräte benötigen nur wenige Watt Leistung, arbeiten oft lüfterlos und lassen sich direkt in Schaltschränken oder an Maschinen montieren. Separate Serverräume entfallen. Gerade kleine und mittlere Unternehmen profitieren von dieser platz- und kostensparenden Infrastruktur.
Kubernetes abstrahiert dabei konsequent die darunterliegende Hardware. Ob ein Knoten auf einem Raspberry Pi, einem Intel NUC oder einem Jetson Nano läuft, spielt für den Cluster keine Rolle. Alle Anwendungen laufen in Containern, die Kubernetes orchestriert. Sie rollen Updates gezielt aus, Kubernetes startet fehlerhafte Pods neu und verteilt Ressourcen automatisch. Selbst kleine Installationen erreichen eine Robustheit wie im Rechenzentrum. Über gesicherte VPN-Verbindungen lassen sich Edge-Cluster zudem an zentrale Kubernetes-Umgebungen anbinden, sodass Updates, Monitoring und Logging zentral erfolgen.
HA trotz Kleinsthardware
MicroK8s bringt einen Hochverfügbarkeitsmodus mit. Sobald mindestens drei Knoten einem Cluster beitreten, aktiviert sich automatisch eine Dqlite-basierte, verteilte Datenbank. Sie stellt die Redundanz der Cluster-Zustände sicher. Fällt ein Knoten aus, übernehmen die verbleibenden Geräte die Aufgaben der Control Plane und des Datenspeichers ohne Unterbrechung.
Kubeadm-basierte Cluster erreichen Hochverfügbarkeit über mehrere Control-Plane-Knoten mit replizierten Etcd-Instanzen und vorgeschalteten Loadbalancern. Dieser Ansatz funktioniert ebenfalls auf Mini-PCs, erfordert jedoch eine deutlich aufwendigere manuelle Konfiguration. Welche Variante sich eignet, hängt vom gewünschten Automatisierungsgrad, der Anzahl der Knoten und den betrieblichen Anforderungen ab.
MicroK8s ist besonders für Einzelknoten und kleine Cluster geeignet. Es bringt alle benötigten Komponenten bereits mit und reduziert den Konfigurationsaufwand erheblich. Für einen hochverfügbaren Cluster benötigen Sie mindestens drei Raspberry-Pi-Geräte, idealerweise mit 4 GByte RAM oder mehr. Zusätzlich erforderlich sind MicroSD-Karten, ein gemeinsam genutzter Netzwerk-Switch sowie eine stabile Stromversorgung. Alternativ können Sie Mini-PCs mit vergleichbarer Ausstattung einsetzen.
Installieren Sie ein schlankes 64-Bit-Linux wie Ubuntu 24.04 LTS auf den Geräten. Verwenden Sie auf dem Raspberry Pi unbedingt die arm64-Variante, da MicroK8s eine 64-Bit-Architektur voraussetzt. Weisen Sie jedem Knoten eine feste IP-Adresse zu oder konfigurieren Sie entsprechende DHCP-Reservierungen. Aktivieren Sie SSH, installieren Sie alle verfügbaren Paketupdates und tragen Sie die Hostnamen der Knoten in die Datei "/etc/hosts" ein, damit sich die Geräte zuverlässig gegenseitig auflösen können.
Für den stabilen Betrieb eines Kubernetes-Clusters ist es zwingend erforderlich, Swap vollständig zu deaktivieren. Kubeadm, MicroK8s und K3s gehen davon aus, dass der verfügbare Arbeitsspeicher exakt abgebildet wird und der Kernel keinen Speicher auf Massenspeicher auslagert. Aktiver Swap verfälscht die Einschätzung des kubelets über die tatsächliche Ressourcenauslastung. Der Scheduler trifft dadurch falsche Entscheidungen bei der Platzierung von Pods.
Unter Last beginnt der Kernel, Prozesse aus dem Arbeitsspeicher zu verdrängen. Zeitkritische Workloads reagieren dann verzögert oder unvorhersehbar. Sobald Kubernetes seine eigenen Steuerungsmechanismen nicht mehr konsistent anwenden kann, leidet die Stabilität der Control Plane und der Worker Nodes. Erst ein vollständig deaktivierter Swap ermöglicht eine deterministische Arbeitsweise und stellt sicher, dass Pods ihre definierten Ressourcen zuverlässig erhalten.
Prüfen Sie zunächst, ob Swap aktiv ist mit sudo swapon --show und deaktivieren Sie Swap im laufenden Betrieb mit sudo swapoff -a. Ohne weitere Maßnahmen aktiviert das System Swap jedoch bei jedem Neustart erneut. Passen Sie daher die Datei "/etc/fstab" mit dem Befehl sudo nano /etc/fstab an. Kommentieren Sie die entsprechende Swap-Zeile, zum Beispiel:
#/swapfile none swap sw 0 0
Nach einem Neustart bleibt Swap dauerhaft deaktiviert. Überprüfen Sie den Zustand erneut mit sudo swapon --show. Stellen Sie zusätzlich sicher, dass alle Knoten dieselbe Zeitquelle verwenden. Installieren Sie dazu NTP oder Chrony und aktivieren Sie die Zeitsynchronisierung. Eine konsistente Systemzeit ist auch in Kubernetes essenziell, da Zertifikate, Token und Cluster-Kommunikation auf korrekten Zeitstempeln basieren.
Bild 1: MicroK8s lässt sich direkt in die Basisinstallation von Ubuntu einbinden und automatisiert bereitstellen.
MicroK8s installieren
Ubuntu erlaubt es zwar, MicroK8s bereits während der Serverinstallation über Snap und Cloud-Init einzubinden, für produktive oder experimentelle Edge-Cluster empfiehlt sich jedoch eine manuelle Installation. Sie behalten so die volle Kontrolle über Versionen, Add-ons und Systemeinstellungen. Installieren Sie zunächst Ubuntu, aktualisieren Sie das System vollständig und deaktivieren Sie Swap, wie zuvor beschrieben. Anschließend installieren Sie MicroK8s auf jedem Knoten mit folgendem Befehl:
Das Snap-Paket enthält alle notwendigen Kubernetes-Komponeten und startet stand- ardmäßig im Single-Node-Modus. Die jeweils aktuelle Version und verfügbare Channels liefert die MicroK8s-Webseite.
Nach der Installation besitzt der aktuell angemeldete Benutzer noch keine ausreichenden Berechtigungen zur Cluster-Verwaltung. Kubernetes-Kommandos funktionieren nur zuverlässig, wenn der Benutzer Mitglied der Gruppe "microk8s" ist. Ubuntu kapselt MicroK8s bewusst in einer eigenen Sicherheitsdomäne, um Zugriffe auf interne Dateien und Diens-te zu beschränken. Prüfen Sie zunächst den Cluster-Status mit microk8s status. Erscheint eine Warnung zur fehlenden Gruppenmitgliedschaft oder lässt sich der Befehl nicht ausführen, weisen Sie Ihrem Benutzer die erforderlichen Rechte zu:
sudo usermod -aG microk8s $USER
Damit die neue Gruppenzugehörigkeit wirksam wird, melden Sie sich einmal ab und wieder an. Nach erfolgreicher Installation können Sie optionale Add-ons aktivieren, die für viele Edge-Szenarien sinnvoll sind. Dazu zählen DNS, Storage und das Dashboard:
microk8s enable dns storage
dashboard
Bild 2: Nach der Installation von MicroK8s können Sie den Status des Clusters mit den entsprechenden Rechten überprüfen.
Cluster konfigurieren und Knoten beitreten
Initialisieren Sie den Cluster auf dem ersten Raspberry Pi oder Mini-PC über microk8s add-node. MicroK8s zeigt daraufhin die erforderlichen Tokens und Join-Befehle zum Hinzufügen weiterer Knoten an. Jeder Node erhält ein eigenes Token. Führen Sie den generierten Join-Befehl auf den weiteren Geräten aus, zum Beispiel:
Sobald mindestens drei Knoten dem Cluster beigetreten sind, aktiviert MicroK8s automatisch den Hochverfügbarkeitsmodus. Prüfen Sie den Zustand des Clus-ters mit microk8s status --wait-ready. Mit microk8s kubectl get nodes stellen Sie sicher, dass alle Knoten den Status "Ready" erreicht haben. Damit steht ein hochverfügbarer Kubernetes-Cluster auf Kleinsthardware bereit, der sich für Edge-Szenarien ebenso eignet wie für verteilte Test- und Entwicklungsumgebungen.
Besonderheiten und Praxistipps
Ein Edge-Cluster auf Basis von MicroK8s erfordert besondere Aufmerksamkeit bei der Speicherwahl und beim Umgang mit internen Cluster-Komponenten. Das Addon "storage" erstellt nach der Aktivierung eine "HostPath-StorageClass", die Container-Daten direkt im Dateisystem des jeweiligen Knotens ablegt. Für erste Tests oder kleine Laborumgebungen ist dieser Ansatz ausreichend, da sich Daten ohne zusätzliche Infrastruktur lokal nutzen lassen.
Nach der Aktivierung sollten Sie prüfen, ob MicroK8s die StorageClass korrekt angelegt hat und ob Pods die lokalen Verzeichnisse wie erwartet verwenden. Für produktive Installationen eignet sich HostPath-Speicher jedoch nur eingeschränkt, da er keinen Schutz bei Hardwareausfällen bietet. In professionellen Edge-Umgebungen setzen Sie daher auf robuste Massenspeicher. USB-SSDs oder besser NVMe-Laufwerke liefern auf Rasp- berry Pi 4 oder 5 sowie auf Mini-PCs deutlich höhere Schreibraten und reduzieren das Ausfallrisiko durch verschlissene MicroSD-Karten erheblich.
Ein NFS-Share stellt eine sinnvolle Alternative dar, wenn mehrere Knoten auf gemeinsame Datenbereiche zugreifen müssen oder persistente Daten zentral vorgehalten werden sollen. In solchen Szenarien richten Sie einen dedizierten NFS-Server im lokalen Netzwerk ein und konfigurieren anschließend eine eigene StorageClass, die über die entsprechenden NFS-Endpunkte arbeitet.
Ein weiterer wichtiger Punkt ist die Sicherung des internen Dqlite-Speichers. MicroK8s nutzt Dqlite zur Verwaltung des Cluster-Zustands und speichert da-rin Informationen zu Knoten, Zertifikaten und Ressourcenobjekten. Sie sollten diesen Zustand regelmäßig sichern, um den Cluster bei Hardwaredefekten oder Konfigurationsfehlern reproduzieren zu können. MicroK8s stellt dafür ein eigenes Werkzeug bereit, mit dem Sie den Dqlite-Datenspeicher exportieren und als Datei sichern. Kopieren Sie diese Sicherungen anschließend auf ein externes Medium oder einen zentralen Backupserver. Ein konsequent gepflegtes Backup schützt vor dem Verlust kritischer Cluster-Informationen bei Ausfällen einzelner Geräte.
Patchmanagement im
Kubernetes-Cluster
Auch das Patchmanagement verdient in Edge-Umgebungen besondere Beachtung. MicroK8s nutzt das Snap-Sys-tem von Ubuntu und ermöglicht damit transaktionale Updates der Kubernetes-Komponenten. Prüfen Sie zunächst die installierte Version und führen Sie anschließend die Aktualisierung mit snap refresh microk8s aus. Dieser Vorgang aktualisiert alle internen Kubernetes-Diens-te und stellt sicher, dass Sicherheits- und Bugfixes zeitnah eingespielt werden. Da Edge-Cluster empfindlich auf ungeplante Neustarts reagieren, sollten Sie Updates immer kontrolliert durchführen. Aktualisieren Sie die Knoten nacheinander, nicht parallel.
Beginnen Sie mit einem Worker Node, prüfen Sie nach dem Update den Cluster-Zustand und warten Sie, bis der Knoten wieder vollständig "Ready" ist. Erst danach aktualisieren Sie den nächsten Worker. Control-Plane-Knoten aktualisieren Sie zuletzt und ebenfalls einzeln. Auf diese Weise vermeiden Sie Ausfallzeiten und halten den Cluster auch während Wartungsarbeiten durchgehend funktionsfähig.
Fazit
MicroK8s macht Kubernetes auf Kleinsthardware zugänglich. Im zweiten Teil werfen wir einen Blick auf die Edge-Installation mit kubeadmin, die HA-Control-Plane und VIP-Adressen.