© MP-Studio/Shutterstock.com
Docker-Schwarm mit dem Raspberry Pi aufbauen

Himbeerschwarm


Wir beschäftigen uns in diesem Artikel damit, wie man Docker auf dem Raspberry Pi installiert und betreibt. Als Beispiel dient ein einfaches Docker Image, das eine JSP-Seite mit Tomcat ausliefert. Am Ende des Artikels bauen wir einen Schwarm mit drei Raspberry Pis auf.

Mit Docker kann man Anwendungen mit all ihren Abhängigkeiten in Images installieren. Die Images sind dann leicht zwischen Systemen austauschbar. Es gibt mittlerweile schon eine Vielzahl vorkonfigurierter Images, die man frei verwenden und für die eigenen Bedürfnisse anpassen kann. Durch ihre Verwendung spart man viel Zeit und Ressourcen. Wird ein Image gestartet, entsteht ein Container. Images und Container verhalten sich ähnlich zueinander wie Java-Klassen und deren Instanzen. Es können theoretisch beliebig viele Container aus einem Image erzeugt werden. Die einzige Begrenzung ist die Hardware, auf der die Container laufen. Diese Grenze lässt sich allerdings leicht nach oben verschieben, wenn man einen Docker-Schwarm einsetzt. Mit einem Schwarm kann man mehrere Docker-Installationen, die auf verschiedenen Rechnern laufen, miteinander verbinden. Sie lassen sich dann wie eine Installation verwalten. Ein Docker-Schwarm bietet eine gewisse Toleranz gegen Fehler. Bricht ein Rechner im Schwarm weg, können die übrigen Rechner seine Aufgaben automatisch übernehmen.

Die Images werden während der Laufzeit eines Containers nicht verändert. Die Container halten ihre eigenen Daten in einem Overlay Filesystem. Jeder neu gestartete Container hat zu Beginn die gleichen Daten wie das Image, aus dem er entstanden ist. Es gibt allerdings auch die Möglichkeit, einen Container mit seinen Daten wieder zu starten. Darauf gehen wir später noch einmal genauer ein. Zusätzlich stellt Docker sogenannte Volumes bereit. Mit ihnen ist es möglich, Teile des Host-Filesystems in einem Container zu verwenden und dadurch Daten persistent unabhängig von Status des Containers zu speichern. Es gibt zwei Varianten von Docker:

  • Docker EE (Enterprise Edition) ist für den professionellen Einsatz gedacht und verursacht Kosten.

  • Docker CE (Community Edition) kann frei heruntergeladen und verwendet werden.

In diesem Artikel verwenden wir Docker CE.

Set-up

Für unseren Schwarm verwenden wir drei Raspberry Pis vom Typ 3. Darauf installieren wir das aktuelle Raspbian Buster Lite. Wir verwenden die Lite-Variante, weil sie keine unnötigen Programme beinhaltet. Sie können Raspbian Buster Lite frei von der Downloadseite des Raspberry-Projekts herunterladen [1]. Wenn Sie das ZIP-File auf Ihrer Platte gespeichert haben, müssen Sie es nur noch entpacken und mit einem Tool Ihrer Wahl auf die SD-Karten schreiben. Wir benötigen für jeden Raspberry eine Karte. Es dauert schon ein Weilchen, bis man alle Karten beschrieben hat. ITler, die sich mit Murphys Gesetz auskennen („Alles, was schiefgehen kann, wird auch schiefgehen.“), werden sicherheitshalber gleich eine Karte mehr vorbereiten.

Um später nicht durcheinander zu kommen, sollten Sie jeden Raspberry eindeutig beschriften. Neben der eindeutigen Beschriftung hilft es auch, den Raspberries feste IP-Adressen und eindeutige Hostnamen zu geben. In Tabelle 1 können Sie beispielhaft sehen, wie man die Zuordnung vornehmen kann. Sie müssen hier natürlich IPs wählen, die in Ihrem eigenen Netzwerk funktionieren. Abbildung 1 zeigt den beschrifteten Raspberry-Schwarm. Da die Raspberries doch recht warm werden können, wenn sie so dicht beieinanderstehen, sollte man ruhig mit einem Lüfter für etwas Durchzug sorgen.

mohr_docker_1.tif_fmt1.jpgAbb. 1: Der Raspberry-Schwarm

Hostname

IP

Beschriftung

docker01

192.168.3.70

01

docker02

192.168.3.71

02

docker03

192.168.3.72

03

Tabelle 1: Konfigurationsbeispiel des Schwarms

Wenn Sie alles soweit vorbereitet haben, wird es Zeit, die SD-Karten in die Raspberries zu stecken. Wir beschreiben hier am Beispiel des Rechners docker01, was für die Einrichtung zu tun ist. Für die beiden weiteren Rechner sind analog die gleichen Schritte durchzuführen.

Beim ersten Booten passt der Raspberry die Größe des Root-Filesystems auf die verwendete SD-Karte an, danach bootet er automatisch neu. Nach dem Reboot können wir uns wie gewohnt auf dem Raspberry (User: pi Passwort: raspberry) einloggen. Als Erstes sollten Sie den SSH-Server auf dem Raspberry aktivieren, damit Sie von Ihrem PC aus auf den Raspberry zugreifen können. Das erledigen Sie mit dem Kommandozeilentool raspi-config. Das Tool muss mit Superuserrechten ausgeführt werden (sudo raspi-config). Im Menüpunkt Interfacing Options | P2 SSH können Sie nun den SSH-Server aktivieren.

Ab jetzt können Sie von Ihrem PC aus weiterarbeiten. Linux-User können hierfür einfach das Kommando ssh pi@<RASPI_IP> verwenden. Wenn Sie ein anderes Betriebssystem verwenden, müssen Sie sich ein Tool wie Putty herunterladen, um die SSH-Verbindung herstellen zu können.

Wir geben nun jedem Raspberry eine feste IP-Adresse, das macht es uns leichter, die Raspberries zu unterscheiden. Um das zu erreichen, editieren wir die Datei, in der die Netzwerkeinstellungen abgelegt sind (sudo nano /etc/dhcpcd.conf). In Listing 1 können Sie die Stelle in der Datei sehen, die verändert werden muss, um eine feste IP zu verwenden.

Listing 1: Feste IP verwenden

# Example static IP configuration: interface eth0 static ip_address=192.168.3.70/24 static routers=192.168.3.1 static domain_name_servers=192.168.3.1 

Die Hostnamen de...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang