Wie man den Befehl docker node promote verwendet, um einen Worker-Knoten zu befördern

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 lernen Sie, wie Sie einen Worker-Knoten (Arbeitsknoten) in einem Docker Swarm zu einem Manager-Knoten (Verwaltungsknoten) befördern können. Sie beginnen damit, einen Docker Swarm auf einer LabEx-VM zu initialisieren und einen Worker-Knoten diesem beizutreten.

Nachdem die Einrichtung abgeschlossen ist, identifizieren Sie den Worker-Knoten innerhalb des Swarms und verwenden dann den Befehl docker node promote, um seine Rolle in einen Manager-Knoten zu ändern. Abschließend überprüfen Sie die neue Rolle des Knotens, um sicherzustellen, dass die Beförderung erfolgreich war. Diese praktische Übung zeigt einen wichtigen Aspekt der Docker Swarm-Verwaltung.


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/SystemManagementGroup -.-> docker/version("Show Docker Version") docker/SystemManagementGroup -.-> docker/system("Manage Docker") subgraph Lab Skills docker/ls -.-> lab-555183{{"Wie man den Befehl docker node promote verwendet, um einen Worker-Knoten zu befördern"}} docker/version -.-> lab-555183{{"Wie man den Befehl docker node promote verwendet, um einen Worker-Knoten zu befördern"}} docker/system -.-> lab-555183{{"Wie man den Befehl docker node promote verwendet, um einen Worker-Knoten zu befördern"}} end

Initialisieren eines Docker Swarms

In diesem Schritt initialisieren Sie einen Docker Swarm auf Ihrer LabEx-VM. Ein Docker Swarm ist ein Cluster von Docker-Hosts, die im Swarm-Modus ausgeführt werden. Der Swarm-Modus ermöglicht es Ihnen, einen Cluster von Docker-Knoten als ein einzelnes virtuelles System zu verwalten.

Bevor Sie den Swarm initialisieren, überprüfen wir zunächst die aktuelle Docker-Version, die auf der VM installiert ist.

docker version

Sie sollten eine Ausgabe ähnlich der folgenden sehen, die darauf hinweist, dass die Docker-Version 20.10.21 ist:

Client: Docker Engine - Community
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.18.9
 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.18.9
  Git commit:       363bd3a
  Built:            Tue Oct 25 17:59:35 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.10
  GitCommit:        b4bd5d2bb63a5d10182b7e90689158e7c7b9b06b
 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. Wenn Sie einen Swarm initialisieren, wird der aktuelle Knoten zum ersten Manager-Knoten. Manager-Knoten übernehmen die Swarm-Verwaltungstasks, wie das Aufrechterhalten des Swarm-Zustands, die Planung von Services und die Bereitstellung der Swarm-Modus-API.

Verwenden Sie den Befehl docker swarm init, um den Swarm zu initialisieren. Wir geben die Anzeigeadresse (advertise address) an, um sicherzustellen, dass andere Knoten den Swarm über die IP-Adresse der VM beitreten können. Ersetzen Sie YOUR_VM_IP_ADDRESS durch die tatsächliche IP-Adresse Ihrer LabEx-VM. Sie können diese IP-Adresse in den LabEx-Umgebungsdetails finden.

docker swarm init --advertise-addr YOUR_VM_IP_ADDRESS

Nachdem Sie den Befehl ausgeführt haben, sehen Sie eine Ausgabe, die darauf hinweist, dass der Swarm initialisiert wurde und einen Befehl für andere Knoten enthält, um dem Swarm als Worker beizutreten. Bewahren Sie diesen Beitritts-Befehl auf, da Sie ihn im nächsten Schritt benötigen werden.

Swarm initialized: current node (xxxxxxxxxxxx) is now a manager.

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

    docker swarm join --token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx YOUR_VM_IP_ADDRESS:2377

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

Hinzufügen eines Worker-Knotens zum Swarm

Im vorherigen Schritt haben Sie einen Docker Swarm initialisiert, und der aktuelle Knoten ist nun der Manager. Jetzt werden Sie das Hinzufügen eines Worker-Knotens zu diesem Swarm simulieren. In einer realen Umgebung würden Sie diesen Schritt auf einem separaten Computer ausführen, den Sie als Worker hinzufügen möchten. In diesem Lab verwenden wir jedoch die gleiche VM, um die Teilnahme eines Worker-Knotens am Swarm zu simulieren.

Um einen Knoten als Worker beizutreten zu lassen, benötigen Sie den Beitritts-Befehl, der nach der Initialisierung des Swarms bereitgestellt wird. Dieser Befehl enthält das Swarm-Beitritts-Token sowie die IP-Adresse und den Port des Manager-Knotens.

Falls Sie den Beitritts-Befehl aus dem vorherigen Schritt nicht mehr haben, können Sie ihn auf dem Manager-Knoten mit dem Befehl docker swarm join-token worker abrufen.

docker swarm join-token worker

Dieser Befehl gibt den Beitritts-Befehl für einen Worker-Knoten aus:

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

    docker swarm join --token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx YOUR_VM_IP_ADDRESS:2377

Jetzt führen Sie den erhaltenen Beitritts-Befehl aus. Da wir auf der gleichen VM einen Worker simulieren, führen Sie diesen Befehl im gleichen Terminal aus.

docker swarm join --token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx YOUR_VM_IP_ADDRESS:2377

Sie sollten eine Ausgabe sehen, die darauf hinweist, dass der Knoten als Worker dem Swarm beigetreten ist:

This node joined a swarm as a worker.

Dies bedeutet, dass Ihre einzelne VM nun sowohl als Manager- als auch als Worker-Knoten innerhalb des Swarms fungiert.

Auflisten der Swarm-Knoten und Identifizieren des Worker-Knotens

In den vorherigen Schritten haben Sie einen Docker Swarm initialisiert und denselben Knoten anschließend als Worker dem Swarm beigetreten. Jetzt listen wir die Knoten im Swarm auf, um den aktuellen Zustand zu sehen und die Rollen jedes Knotens zu identifizieren.

Um die Knoten im Swarm aufzulisten, verwenden Sie den Befehl docker node ls. Dieser Befehl liefert Informationen über jeden Knoten im Swarm, einschließlich seiner ID, des Hostnamens, des Status, der Verfügbarkeit, des Manager-Status und der Version.

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
yyyyyyyyyyyy                  labex-vm            Ready     Active                          20.10.21

In dieser Ausgabe sehen Sie zwei Einträge, beide mit dem Hostnamen labex-vm. Dies liegt daran, dass Ihre einzelne VM als zwei Knoten im Swarm fungiert: ein Manager und ein Worker.

  • Der Knoten mit MANAGER STATUS als Leader ist der Manager-Knoten, den Sie im ersten Schritt initialisiert haben.
  • Der Knoten ohne aufgeführten MANAGER STATUS ist der Worker-Knoten, den Sie im zweiten Schritt beigetreten haben.

Notieren Sie sich die ID des Worker-Knotens. Sie benötigen diese ID im nächsten Schritt, um ihn zu einem Manager zu befördern. Die ID ist ein eindeutiger Bezeichner für jeden Knoten im Swarm.

Befördern des Worker-Knotens zu einem Manager

Im vorherigen Schritt haben Sie die Knoten im Swarm aufgelistet und den Worker-Knoten anhand seiner ID und des fehlenden MANAGER STATUS identifiziert. Jetzt werden Sie diesen Worker-Knoten zu einem Manager-Knoten befördern. Das Befördern eines Worker-Knotens zu einem Manager erhöht die Anzahl der Manager-Knoten in Ihrem Swarm, was für Hochverfügbarkeit und Fehlertoleranz in einer Produktionsumgebung wichtig ist.

Um einen Knoten zu befördern, verwenden Sie den Befehl docker node promote, gefolgt von der ID des Knotens, den Sie befördern möchten. Sie haben die ID des Worker-Knotens im vorherigen Schritt ermittelt.

Ersetzen Sie WORKER_NODE_ID durch die tatsächliche ID Ihres Worker-Knotens.

docker node promote WORKER_NODE_ID

Nach der Ausführung des Befehls sollten Sie eine Ausgabe sehen, die bestätigt, dass der Knoten befördert wurde:

Node WORKER_NODE_ID was promoted to a manager.

Dies zeigt an, dass der Knoten, der zuvor ein Worker war, jetzt auch ein Manager-Knoten in Ihrem Swarm ist. Ihr Swarm hat jetzt zwei Manager-Knoten (obwohl sie in dieser simulierten Umgebung beide auf derselben physischen VM laufen).

Überprüfen der neuen Rolle des Knotens

Im vorherigen Schritt haben Sie den Worker-Knoten zu einem Manager befördert. Jetzt überprüfen wir, ob die Rolle des Knotens erfolgreich aktualisiert wurde, indem wir die Knoten im Swarm erneut auflisten.

Verwenden Sie den Befehl docker node ls, um die Knoten aufzulisten.

docker node ls

Diesmal sollten Sie eine Ausgabe ähnlich der folgenden sehen:

ID                            HOSTNAME            STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
xxxxxxxxxxxx                  labex-vm            Ready     Active         Leader           20.10.21
yyyyyyyyyyyy                  labex-vm            Ready     Active         Reachable        20.10.21

Beachten Sie, dass der Knoten, der zuvor ohne MANAGER STATUS aufgeführt war, jetzt Reachable unter MANAGER STATUS zeigt. Dies bestätigt, dass der Knoten erfolgreich befördert wurde und jetzt vom Swarm als Manager-Knoten erkannt wird. Der Knoten mit dem Status Leader ist der primäre Manager, während der Knoten mit dem Status Reachable ein sekundärer Manager ist.

Das Vorhandensein mehrerer Manager-Knoten in einem Swarm bietet Redundanz. Wenn der Leader-Manager-Knoten nicht verfügbar wird, kann ein anderer Manager-Knoten seine Rolle übernehmen und so den fortgesetzten Betrieb des Swarms gewährleisten.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie einen Docker Swarm auf einem einzelnen Knoten initialisieren, wodurch dieser zum ersten Manager wird. Anschließend haben Sie geübt, einen Worker-Knoten diesem Swarm beizutreten und so das Cluster zu erweitern. Das Lab hat Sie durch das Auflisten der Swarm-Knoten geführt, um den neu hinzugefügten Worker zu identifizieren. Schließlich haben Sie die Schlüsselaktion durchgeführt, den Worker-Knoten mit dem Befehl docker node promote zu einem Manager-Knoten zu befördern, und die erfolgreiche Rollenänderung überprüft.