So verwenden Sie den Befehl docker node demote, um einen Swarm-Manager herabzustufen

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/exec("Execute Command in Container") docker/SystemManagementGroup -.-> docker/version("Show Docker Version") subgraph Lab Skills docker/ls -.-> lab-555180{{"So verwenden Sie den Befehl docker node demote, um einen Swarm-Manager herabzustufen"}} docker/ps -.-> lab-555180{{"So verwenden Sie den Befehl docker node demote, um einen Swarm-Manager herabzustufen"}} docker/exec -.-> lab-555180{{"So verwenden Sie den Befehl docker node demote, um einen Swarm-Manager herabzustufen"}} docker/version -.-> lab-555180{{"So verwenden Sie den Befehl docker node demote, um einen Swarm-Manager herabzustufen"}} end

Initialisierung eines 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 es labex-vm.
  • STATUS: Der Status des Knotens. Ready bedeutet, dass der Knoten gesund und bereit ist, Aufgaben anzunehmen.
  • AVAILABILITY: Gibt an, ob der Knoten für die Planung von Aufgaben verfügbar ist. Active bedeutet, dass er verfügbar ist.
  • MANAGER STATUS: Zeigt die Rolle des Knotens im Swarm an. Leader gibt an, dass dieser Knoten der primäre Manager im Swarm ist. Wenn es andere Manager gäbe, würden sie Reachable anzeigen. 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.

Herabstufung eines Manager-Knotens

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üfung der Rolle des Knotens nach der Herabstufung

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.