Einführung
In diesem Lab werden wir untersuchen, wie man die Rollen von Knoten in einem Docker Swarm verwaltet. Insbesondere werden wir uns darauf konzentrieren, den Befehl docker node demote zu verwenden, um die Rolle eines Manager-Knotens in die eines Worker-Knotens zu ändern.
Das Lab wird Sie durch den Prozess der Initialisierung eines Docker Swarm führen, indem Sie die aktuellen Manager-Knoten identifizieren, den Demotionsbefehl ausführen und schließlich die aktualisierte Rolle des Knotens überprüfen, um die erfolgreiche Demotion zu bestätigen. Diese praktische Erfahrung wird Ihnen praktisches Wissen über die Verwaltung von Docker Swarm-Knoten vermitteln.
Initialisieren Sie einen Docker Swarm
In diesem Schritt werden wir einen Docker Swarm initialisieren. Ein Docker Swarm ist eine Gruppe von Maschinen, auf denen Docker läuft und die zu einem Cluster zusammengefügt sind. Nachdem Sie einem Swarm beigetreten sind, können Sie weiterhin die gewohnten Docker-Befehle ausführen, aber diese werden jetzt von einem Swarm-Manager ausgeführt. Die Maschinen in einem Swarm können entweder Manager oder Worker sein. Manager übernehmen die Cluster-Verwaltungstasks, während Worker die Services ausführen.
Bevor wir den Swarm initialisieren, lassen Sie uns die aktuelle Docker-Version überprüfen.
docker version
Sie sollten eine Ausgabe ähnlich der folgenden sehen, die die auf der LabEx-VM installierte Docker-Version anzeigt:
Client: Docker Engine - Community
Version: 20.10.21
API version: 1.41
Go version: go1.16.20
Git commit: baeda1f
Built: Tue Oct 25 18:01:18 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.21
API version: 1.41 (minimum version 1.12)
Go version: go1.16.20
Git commit: 363bd3c
Built: Tue Oct 25 17:59:50 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.10
GitCommit: b4bd5d2b3d85c5e9b15588d67616e19a2a3a495d
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Jetzt initialisieren wir den Docker Swarm auf dieser Maschine. Da dies der erste Knoten im Swarm ist, wird er automatisch ein Manager-Knoten. Wir verwenden den Befehl docker swarm init.
docker swarm init
Sie sollten eine Ausgabe sehen, die anzeigt, dass der Swarm initialisiert wurde und einen Befehl bereitstellt, um andere Knoten als Worker beizutreten. Die Ausgabe sieht ähnlich wie folgt aus:
Swarm initialized: current node (xxxxxxxxxxxx) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 172.17.0.2:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
Die Ausgabe bestätigt, dass der Swarm initialisiert wurde und der aktuelle Knoten ein Manager ist. xxxxxxxxxxxx wird durch die tatsächliche Knoten-ID ersetzt.
Auflisten der Swarm-Knoten, um Manager zu identifizieren
In diesem Schritt werden wir die Knoten im Docker Swarm auflisten, um festzustellen, welche Knoten Manager und welche Worker sind. Da wir den Swarm gerade mit einem einzelnen Knoten initialisiert haben, erwarten wir, dass nur ein Knoten aufgeführt wird und seine Rolle "Manager" sein sollte.
Um die Knoten im Swarm aufzulisten, verwenden wir den Befehl docker node ls.
docker node ls
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
xxxxxxxxxxxx * labex-vm Ready Active Leader 20.10.21
Lassen Sie uns die Ausgabe analysieren:
ID: Die eindeutige ID des Knotens. Das Sternchen (*) neben der ID gibt an, dass es sich um den aktuellen Knoten handelt, auf dem Sie den Befehl ausführen.HOSTNAME: Der Hostname des Knotens. In diesem Fall ist eslabex-vm.STATUS: Der Status des Knotens.Readybedeutet, dass der Knoten gesund und bereit ist, Aufgaben anzunehmen.AVAILABILITY: Gibt an, ob der Knoten für die Planung von Aufgaben verfügbar ist.Activebedeutet, dass er verfügbar ist.MANAGER STATUS: Zeigt die Rolle des Knotens im Swarm an.Leadergibt an, dass dieser Knoten der primäre Manager im Swarm ist. Wenn es andere Manager gäbe, würden sieReachableanzeigen. Worker-Knoten hätten dieses Feld leer.ENGINE VERSION: Die Version des Docker-Engines, die auf dem Knoten läuft.
Wie erwartet sehen wir unseren einzelnen Knoten aufgeführt, und sein MANAGER STATUS ist Leader, was bestätigt, dass es sich um einen Manager-Knoten handelt.
Degradieren Sie einen Manager-Knoten
In diesem Schritt werden wir den aktuellen Manager-Knoten zu einem Worker-Knoten herabstufen. Die Herabstufung eines Manager-Knotens bedeutet, dass seine Rolle von der Verwaltung des Swarms zu der einfachen Ausführung von Aufgaben als Worker geändert wird. Dies ist in Szenarien nützlich, in denen Sie die Anzahl der Manager reduzieren oder die Rolle eines bestimmten Knotens ändern müssen.
Um einen Manager-Knoten herabzustufen, verwenden wir den Befehl docker node demote, gefolgt von der Knoten-ID oder dem Hostnamen. Aus dem vorherigen Schritt wissen wir, dass der Hostname labex-vm ist.
docker node demote labex-vm
Sie sollten eine Ausgabe sehen, die die Herabstufung bestätigt:
Node labex-vm was demoted from a manager to a worker.
Diese Ausgabe zeigt an, dass der Knoten labex-vm innerhalb des Swarms erfolgreich von einer Manager- zu einer Worker-Rolle herabgestuft wurde.
Überprüfen Sie die Rolle des Knotens nach der Degradierung
In diesem letzten Schritt werden wir überprüfen, ob die Rolle des Knotens nach der Herabstufungsoperation erfolgreich von Manager zu Worker geändert wurde. Wir verwenden erneut den Befehl docker node ls, um die Knoten im Swarm aufzulisten und die Spalte MANAGER STATUS für unseren Knoten zu überprüfen.
docker node ls
Nachdem Sie den Befehl ausgeführt haben, sollten Sie eine Ausgabe ähnlich der folgenden sehen:
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
xxxxxxxxxxxx labex-vm Ready Active 20.10.21
Beachten Sie, dass die Spalte MANAGER STATUS für den Knoten labex-vm jetzt leer ist. Dies zeigt an, dass der Knoten kein Manager mehr ist und jetzt als Worker-Knoten im Swarm fungiert. Das Sternchen (*) befindet sich immer noch neben der ID, da dies der Knoten ist, auf dem Sie den Befehl ausführen, aber seine Rolle hat sich geändert.
Dies bestätigt, dass die Herabstufung erfolgreich war.
Zusammenfassung
In diesem Lab haben wir gelernt, wie man Docker Swarm-Knoten verwaltet, indem man einen Swarm initialisiert und Manager-Knoten identifiziert. Anschließend haben wir den Befehl docker node demote verwendet, um die Rolle eines Manager-Knotens in eine Worker-Rolle zu ändern. Schließlich haben wir die erfolgreiche Herabstufung überprüft, indem wir die Swarm-Knoten aufgelistet und die aktualisierte Rolle beobachtet haben.



