Im Durchschnitt wird dieses Tutorial Docker Swarm Cluster erstellen mit 5 bewertet, wobei 1.0 die schlechteste und 5.0 die beste Bewertung ist. Es haben insgesamt 169 Besucher eine Bewertung abgegeben.
169 0

Docker Swarm Cluster erstellen

vom gridscale Team Clustering Docker
Docker Swarm Gridscale Tutorial Titelbild

Heute zeigen wir dir, wie du auf gridscale einen Docker Swarm Cluster einrichtest

Nachdem wir dir gezeigt haben, wie du Docker auf Ubuntu 16.04 installierst, wollen wir heute einen Schritt weiter gehen. Du hast Lust deine Entwicklungsumgebung zu erweitern und willst eine Kopie deines Anwendungs-Stack auf mehreren Systemumgebungen laufen lassen? Mit Docker Swarm kannst du deine Container-Anwendungen einfach auf viele Systeme in der Cloud verteilen. Das ganze nennt man Container-Orchestration.

Das Tolle daran: Docker Swarm ist seit Version 1.12 Docker-native. Das bedeutet, dass du nichts weiter als Docker auf deinen Systemen installieren musst, um einen Docker-Swarm einzurichten. Im folgenden Tutorial werden wir einen Docker-Manager mit 2 Workern aufsetzen.

Damit du ein grundlegendes Verständnis davon bekommst, was da später auf deinem Bildschirm passiert, klären wir noch einmal kurz was eigentlich Manager-Nodes und Worker-Nodes sind.

Manager-Nodes: Die Manager übernehmen Aufgaben rund um das Clustermanagement.

Hierzu gehört:

– Überwachen der Cluster
– Scheduling der Services
– Und das bedienen der Docker Swarm API Endpoints



Kling gut, aber was ist dieses Scheduling genau?

Beim “Scheduling” wird ein Service-File auf die Hosts gelegt, welches managed wie ein spezifischer Container laufen soll. Bei der Container-Orchestration hört man in einem allgemeineren Zusammenhang auch oft von einem “Scheduler”, so einen Scheduler muss man etwas differenziert verstehen. Er ist im weiteren Sinne dafür verantwortlich, sich in das init von Hosts einzuhaken und dort die Services in den gewünschten Kapazitäten bereitzustellen.

Worker-Nodes: Die Aufgaben der Worker-Nodes sind abgetrennt von denen der Manager-Nodes. Die Hauptaufgabe der Worker besteht daraus, die Container auszuführen. Worker-Nodes sind den Swarm Managern unterstellt, wir benötigen also mindestens einen Manager-Node für unser Setup. Zudem muss man wissen, dass alle Manager gleichzeitig auch als Worker agieren können.

Kleiner Docker Tipp für später: Du kannst deine Manager in einem multi-node Swarm so konfigurieren, dass diese keine Tasks von einem Scheduler entgegen nehmen. Setze dafür den Status eines Managers in den drain mode. Sollten bereits Tasks auf dem Manger laufen, werden diese gestoppt und an einen active Node übergeben. Nutze hierfür folgendes Kommando:

docker node update --availability drain 


Vorbereitungen

Wir verwenden in unserem Beispiel ein Setup aus 3 Servern. Da wir für unser Tutorial Ubuntu 16.04 nutzen, kannst du bei der Erstellung z.B. einfach auf unser gridscale Template zurückgreifen. Wie du einen gridscale Cloud-Server erstellst, zeigen wir dir in unserem Tutorial How to gridscale.

Du benötigst auf allen 3 Hosts Docker (min. Version 1.12).
Vergessen wie man Docker installiert? In unserem Tutorial: „Docker auf Ubuntu 16.04 LTS – ein einfaches Kochrezept“ zeigen wir dir, wie es geht!

Tipp: Wenn du deinen ersten Host mit Docker eingerichtet hast, kannst du anschließend einfach unsere Screenshot Funktion nutzen und zwei neue Server clonen.

Nachdem wir jetzt unsere 3 Linux Hosts mit IP Adresse und Docker aufgesetzt haben, können wir damit loslegen, unserem Swarm Leben einzuhauchen.

Docker Swarm Tutorial Setup - gridscale

Damit alle Nodes innerhalb eines Swarms mit dem Manager kommunizieren können, ist es wichtig, dass auch alle Hosts untereinander kommunizieren können.


Swarm Manager konfigurieren

Im zweiten Schritt konfigurieren wir den Swarm Manager. Verbinde dich mit deiner ersten Maschine via ssh und führe dazu folgenden Befehl aus:

docker swarm init --advertise-addr 185.201.144.115

Der Docker-Daemon antwortet dir auf deinen Befehl wie folgt:

root@server-dlns13ru:~# docker swarm init --advertise-addr 185.201.144.115
Swarm initialized: current node (74k3wszor5e9k0mczdqf17jn8) is now a manager.f

To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-254dwy02zm1292gv66cxi7yn9odggm0z15ju3pt02udb940g5n-0ecfbhlml1tswy51djdgpb0ow \
    185.201.144.115:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

Mit dem Befehl hast du soeben einen Docker Manager inklusive Swarm generiert. In der Antwort vom Docker Daemon wird die Erstellung eines Swarm Managers bestätigt. Außerdem wurde für die neue Node eine ID “74k3wszor5e9k0mczdqf17jn8” angelegt.

Das Flag –advertise-addr weist dem Manager die IP 185.201.144.115 zu.

Desweiteren liefert dir die Antwort einen Befehl zum Hinzufügen von Swarm-Workern zurück. Ziemlich einfach, oder? Wenn du den Swarm-Worker hinzugefügt hast, schau dir mal mit:

docker info

den aktuellen Status deines Docker Swarms an.

Eine vollständige Node-Kommandoübersicht mit Erklärungen erhältst du mit:

docker node


Swarm-Worker hinzufügen

Der dritte Schritt besteht darin, dem erstellten Docker Swarm die Worker hinzuzufügen.
Dafür wechselt du zunächst via ssh auf einen deiner beiden anderen Hosts. Führe nun das Kommando aus, welches dir bei der Erstellung des Swarms mit docker swarm init zurückgeliefert wurde:

Docker Swarm Tutorial swarm init

Wiederhole den Schritt 3 anschließend auf deinem verbleibenden Host.

Wenn du das Kommando gerade mal nicht mehr zur Hand hast, kannst du mit:

docker swarm join-token worker

zurückzuverfolgen wie der Code lautet um einen Swarm-Worker zu erstellen.
Um nachzuverfolgen wie dein Swarm sich jetzt zusammensetzt, schau einmal bei deinem Swarm-Manager vorbei und führe docker node ls aus.

Diese Statusübersicht lässt sich nur auf einem Docker-Manager ausführen. Die Manager Spalte zeigt dir mit dem Flag “Leader”, wer deine Swarm-Manager sind. Der * gibt Auskunft darüber zu welchem Docker-Node du gerade connected bist. Deine Übersicht sollte jetzt in etwa so aussehen:

Docker Swarm Tutorial node ls

Fazit

Gar nicht so schwer, oder? Du hast gerade deinen ersten Docker Swarm erstellt!

Dass wir bei Docker Swarm einfach auf das Docker Command Line Interface (Cli) zurückgreifen können, macht Docker Swarm zu einem besonders bedienerfreundlichen Container-Orchestration-Tool.

Natürlich macht der Swarm erst mit der Bereitstellung von Services Sinn, wie das geht, erfährst du im zweiten Teil des Tutorials. Trag dich einfach auf der rechten Seite für unseren Tutorial-Newsletter ein, wir informieren dich sobald Teil 2 online geht!

Lust auf mehr Docker?

In unseren Artikel Docker Swarm vs. Kubernetes: Beide Container-Management-Tools im Vergleich gibt es weitere Infos zu Docker.

Heute zeigen wir dir, wie du auf gridscale einen Docker Swarm Cluster einrichtest Nachdem wir dir gezeigt haben, wie du Docker auf Ubuntu 16.04 installierst, wollen wir heute einen Schritt weiter gehen. Du hast Lust deine Entwicklungsumgebung zu erweitern und willst eine Kopie deines Anwendungs-Stack auf mehreren Systemumgebungen laufen lassen? Mit Docker Swarm kannst du […]

Schade, dass dir der Artikel nicht gefallen hat.
Was sollten wir deiner Meinung nach besser machen?

Vielen Dank für dein Feedback!
Wir melden uns bei dir, sobald der Artikel zu deinem Wunschthema fertig ist.

Übrigens: kennst du schon unser Tutorial zum Thema HAProxy mit SSL von Let's Encrypt?

×

Entwickler?

Dann einfach hier für unsere Tutorial-Updates anmelden.
Keine Sorge: Wir spammen dich nicht zu