Wie man den docker swarm join-Befehl verwendet, um Knoten hinzuzufügen

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 Knoten (Nodes) zu einem bestehenden Docker Swarm hinzufügen können, indem Sie den Befehl docker swarm join verwenden. Wir werden den Prozess des Hinzufügens eines Knotens als Worker (Arbeiterknoten), der von Managern zugewiesene Aufgaben ausführt, und als Manager (Verwaltungsknoten), der an der Swarm-Verwaltung teilnimmt, behandeln.

Sie werden auch die Option --availability untersuchen und verstehen, wie Sie sie beim Hinzufügen von Knoten nutzen können, um deren anfängliche Verfügbarkeit innerhalb des Swarms zu steuern. Dieses praktische Lab bietet Ihnen die Möglichkeit, die wesentlichen Schritte zum Erweitern Ihres Docker Swarm-Clusters in der Praxis kennenzulernen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/NetworkOperationsGroup(["Network Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/exec("Execute Command in Container") docker/NetworkOperationsGroup -.-> docker/network("Manage Networks") subgraph Lab Skills docker/run -.-> lab-555241{{"Wie man den docker swarm join-Befehl verwendet, um Knoten hinzuzufügen"}} docker/ps -.-> lab-555241{{"Wie man den docker swarm join-Befehl verwendet, um Knoten hinzuzufügen"}} docker/exec -.-> lab-555241{{"Wie man den docker swarm join-Befehl verwendet, um Knoten hinzuzufügen"}} docker/network -.-> lab-555241{{"Wie man den docker swarm join-Befehl verwendet, um Knoten hinzuzufügen"}} end

Ein Knoten (Node) als Worker einem Swarm beitreten

In diesem Schritt lernen wir, wie man einen Knoten als Worker einem bestehenden Docker Swarm hinzufügt. Ein Worker-Knoten ist ein Computer, der die im Swarm bereitgestellten Dienste ausführt. Er erhält und führt die von den Manager-Knoten zugewiesenen Aufgaben aus.

Bevor Sie einen Knoten einem Swarm hinzufügen, müssen Sie über einen laufenden Docker Swarm-Manager-Knoten verfügen. In diesem Lab gehen wir davon aus, dass ein Swarm bereits initialisiert wurde und Sie das Join-Token für Worker-Knoten haben.

Zunächst simulieren wir das Vorhandensein eines Join-Tokens. In einer realen Situation würden Sie dieses Token vom Manager-Knoten mithilfe des Befehls docker swarm join-token worker erhalten. In diesem Lab verwenden wir ein Platzhalter-Token.

Nehmen wir an, der vom Manager bereitgestellte Join-Befehl sieht wie folgt aus:

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef --advertise-addr <THIS_NODE_IP> <MANAGER_IP>:2377

In diesem Befehl:

  • docker swarm join: Dies ist der Befehl, um einen Knoten einem Swarm hinzuzufügen.
  • --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef: Dies ist das eindeutige Token, das den Knoten beim Swarm authentifiziert.
  • --advertise-addr <THIS_NODE_IP>: Dieser Parameter gibt die IP-Adresse an, die der beitretende Knoten verwenden wird, um sich gegenüber anderen Knoten im Swarm zu präsentieren. Ersetzen Sie <THIS_NODE_IP> durch die tatsächliche IP-Adresse des Knotens, den Sie hinzufügen möchten.
  • <MANAGER_IP>:2377: Dies ist die Adresse eines Manager-Knotens im Swarm. Der beitretende Knoten verbindet sich mit dieser Adresse, um dem Swarm beizutreten. Ersetzen Sie <MANAGER_IP> durch die tatsächliche IP-Adresse eines Manager-Knotens. Der Standardport für Swarms ist 2377.

Da wir in diesem Lab in einer einzigen virtuellen Maschine (VM) arbeiten, simulieren wir den Join-Prozess mit einem vereinfachten Befehl. Wir verwenden 127.0.0.1 als Manager-IP und ein Platzhalter-Token.

Führen Sie den folgenden Befehl aus, um das Beitreten des Swarms als Worker zu simulieren. Beachten Sie, dass dieser Befehl in dieser Ein-VM-Einrichtung nicht tatsächlich einem echten Swarm beitritt, sondern die Befehlsstruktur demonstriert.

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef 127.0.0.1:2377

Sie sollten eine Ausgabe sehen, die darauf hinweist, dass der Knoten versucht, dem Swarm beizutreten. In einer realen Situation würden Sie bei erfolgreichem Beitritt eine Meldung wie "This node joined a swarm as a worker." sehen.

Ein Knoten (Node) als Manager einem Swarm beitreten

In diesem Schritt lernen wir, wie man einen Knoten als Manager einem bestehenden Docker Swarm hinzufügt. Manager-Knoten übernehmen die Swarm-Verwaltungsaufgaben, wie das Aufrechterhalten des Swarm-Zustands, die Planung von Diensten und die Durchführung von swarmweiten Operationen. Ein Swarm kann mehrere Manager-Knoten für Hochverfügbarkeit haben.

Ähnlich wie beim Beitritt als Worker benötigen Sie ein Join-Token von einem bestehenden Manager-Knoten, um als Manager beizutreten. Der Befehl, um das Manager-Join-Token von einem bestehenden Manager-Knoten zu erhalten, lautet docker swarm join-token manager.

Nehmen wir an, der Join-Befehl für einen Manager-Knoten sieht wie folgt aus:

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef --advertise-addr <THIS_NODE_IP> <MANAGER_IP>:2377

Beachten Sie, dass die Befehlsstruktur dieselbe wie beim Beitritt als Worker ist, aber das Token unterschiedlich ist. Das Token für den Beitritt als Manager-Knoten ist eindeutig und gewährt höhere Berechtigungen.

In diesem Lab simulieren wir erneut den Join-Prozess in unserer Ein-VM-Umgebung mit einem Platzhalter-Manager-Token und 127.0.0.1 als Manager-IP.

Führen Sie den folgenden Befehl aus, um das Beitreten des Swarms als Manager zu simulieren:

docker swarm join --token SWMTKN-1-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0987654321fedcba 127.0.0.1:2377

Sie sollten eine Ausgabe sehen, die darauf hinweist, dass der Knoten versucht, dem Swarm beizutreten. In einem realen Mehr-Knoten-Swarm würden Sie bei erfolgreichem Beitritt eine Meldung wie "This node joined a swarm as a manager." sehen.

Verständnis und Verwendung der --availability-Option beim Beitritt

In diesem Schritt werden wir uns die --availability-Option genauer ansehen, die beim Hinzufügen eines Knotens (Node) zu einem Docker Swarm verwendet werden kann. Die --availability-Option steuert, ob ein Knoten für die Planung von Aufgaben zur Verfügung steht. Dies ist besonders nützlich für die Verwaltung der Wartung von Knoten oder um einen Knoten vorübergehend außer Betrieb zu nehmen, ohne ihn aus dem Swarm zu entfernen.

Die --availability-Option kann einen von drei Werten annehmen:

  • active: Der Knoten ist für die Planung von Aufgaben verfügbar. Dies ist der Standardzustand für einen neu hinzugefügten Knoten.
  • pause: Dem Knoten werden keine neuen Aufgaben zugewiesen, aber bestehende Aufgaben laufen weiterhin.
  • drain: Dem Knoten werden keine neuen Aufgaben zugewiesen, und bestehende Aufgaben werden beendet und auf anderen verfügbaren Knoten neu geplant.

Beim Hinzufügen eines Knotens können Sie seine anfängliche Verfügbarkeit festlegen. Beispielsweise können Sie einen Knoten als Worker hinzufügen und seine Verfügbarkeit auf drain setzen, indem Sie einen Befehl wie den folgenden verwenden:

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef --availability drain --advertise-addr <THIS_NODE_IP> <MANAGER_IP>:2377

In diesem Lab werden wir das Hinzufügen eines Knotens mit der Option --availability drain simulieren. Wiederum verwenden wir ein Platzhalter-Token und 127.0.0.1 als Manager-IP in unserer Ein-VM-Umgebung.

Führen Sie den folgenden Befehl aus, um das Hinzufügen zum Swarm mit der Verfügbarkeit drain zu simulieren:

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef --availability drain 127.0.0.1:2377

Sie sollten eine Ausgabe sehen, die darauf hinweist, dass der Knoten versucht, dem Swarm beizutreten. In einem realen Swarm würde der Knoten mit der Verfügbarkeit drain beitreten, was bedeutet, dass ihm keine neuen Aufgaben zugewiesen werden und bestehende Aufgaben verschoben werden würden.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man den Befehl docker swarm join verwendet, um Knoten (Nodes) einem bestehenden Docker Swarm hinzuzufügen. Wir haben den Prozess des Hinzufügens eines Knotens als Worker untersucht, dabei das Rolle des Join-Tokens, die Manager-Adresse und die --advertise-addr-Option verstanden. Wir haben auch betrachtet, wie man einen Knoten als Manager hinzufügt, was ein anderes Join-Token erfordert, das vom Manager-Knoten abgerufen wird. Schließlich haben wir die --availability-Option kennengelernt und wie sie während des Join-Prozesses verwendet werden kann, um die anfängliche Verfügbarkeit eines Knotens innerhalb des Swarms zu steuern.