Wie man den Befehl docker node rm verwendet, um Knoten aus einem Swarm zu entfernen

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) in einem Docker Swarm mithilfe des Befehls docker node rm verwalten können. Zunächst listen Sie die vorhandenen Knoten in einem Swarm auf, um sie zu identifizieren. Anschließend versuchen Sie, einen laufenden Knoten zu entfernen, um das Standardverhalten und die Einschränkungen des Befehls zu verstehen.

Danach erkunden Sie, wie Sie erfolgreich einen angehaltenen Knoten aus dem Swarm entfernen können. Abschließend lernen Sie, wie Sie einen nicht erreichbaren Knoten zwangsweise entfernen können, was für die Behandlung von Szenarien, in denen ein Knoten nicht mehr erreichbar ist, von entscheidender Bedeutung ist. Diese praktische Erfahrung vermittelt Ihnen das nötige Wissen für die Wartung Ihres Docker Swarm-Clusters.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") subgraph Lab Skills docker/ls -.-> lab-555185{{"Wie man den Befehl docker node rm verwendet, um Knoten aus einem Swarm zu entfernen"}} docker/ps -.-> lab-555185{{"Wie man den Befehl docker node rm verwendet, um Knoten aus einem Swarm zu entfernen"}} docker/rm -.-> lab-555185{{"Wie man den Befehl docker node rm verwendet, um Knoten aus einem Swarm zu entfernen"}} end

Vorhandene Knoten (Nodes) im Swarm auflisten

In diesem Schritt lernen Sie, wie Sie die Knoten auflisten können, die derzeit Teil eines Docker Swarms sind. Bevor Sie die Knoten auflisten, müssen wir einen Docker Swarm initialisieren.

Zunächst initialisieren Sie einen neuen Swarm auf dem aktuellen Computer. Dieser Computer wird zum Manager-Knoten (Manager Node).

docker swarm init

Sie sollten eine Ausgabe sehen, die anzeigt, dass der Swarm initialisiert wurde und einen Befehl enthält, um andere Knoten als Worker beizutreten.

Nachdem der Swarm initialisiert ist, können Sie die Knoten im Swarm mit dem Befehl docker node ls auflisten.

docker node ls

Dieser Befehl zeigt eine Tabelle an, die die Knoten im Swarm auflistet. Zu Beginn sehen Sie nur den Manager-Knoten, den Sie gerade initialisiert haben. Die Ausgabe enthält Informationen wie die Knoten-ID (Node ID), den Hostnamen (Hostname), den Status (Status), die Verfügbarkeit (Availability), den Manager-Status (Manager Status) und die Engine-Version (Engine Version).

Beispielsweise könnte die Ausgabe so aussehen:

ID                            HOSTNAME            STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
<node_id> *                   <hostname>          Ready     Active         Leader           20.10.21

Das * neben der ID gibt den aktuellen Knoten an, auf dem Sie sich befinden. Die Spalte MANAGER STATUS zeigt die Rolle des Knotens im Swarm an (z.B. Leader, Reachable, Unavailable).

Versuch, einen laufenden Knoten (Node) aus dem Swarm zu entfernen

In diesem Schritt versuchen Sie, einen Knoten zu entfernen, der derzeit läuft und Teil des Swarms ist. Dies zeigt, dass Sie einen laufenden Knoten nicht einfach entfernen können, ohne ihn zuvor außer Betrieb zu nehmen.

Zunächst listen wir die Knoten erneut auf, um die Knoten-ID (Node ID) des laufenden Knotens zu bestätigen.

docker node ls

Identifizieren Sie die ID des Knotens, den Sie versuchen möchten, zu entfernen. In diesem Fall ist es der einzige aufgeführte Knoten, der Manager-Knoten (Manager Node).

Versuchen Sie nun, den Knoten mit dem Befehl docker node rm zu entfernen, gefolgt von der Knoten-ID. Ersetzen Sie <node_id> durch die tatsächliche ID, die Sie im vorherigen Schritt gefunden haben.

docker node rm <node_id>

Sie werden wahrscheinlich eine Fehlermeldung sehen, die anzeigt, dass der Knoten ein Manager ist und auf diese Weise nicht entfernt werden kann, oder dass der Knoten noch aktiv ist. Dies ist das erwartete Verhalten. Docker Swarm verhindert, dass Sie einen laufenden Knoten direkt entfernen, um Dienstunterbrechungen zu vermeiden.

Die Fehlermeldung könnte so aussehen:

Error response from daemon: node <node_id> is a swarm manager and cannot be removed without --force

Dies bestätigt, dass Sie einen laufenden Manager-Knoten nicht entfernen können, ohne die Option --force zu verwenden, die wir in einem späteren Schritt untersuchen werden. Bei Worker-Knoten (Worker Nodes) würden Sie normalerweise den Knoten zuerst entladen, bevor Sie ihn entfernen.

Einen gestoppten Knoten (Node) aus dem Swarm entfernen

In diesem Schritt lernen Sie, wie Sie einen Knoten aus dem Swarm entfernen können, der nicht mehr läuft oder erreichbar ist. Da wir in unserem aktuellen Swarm nur einen Knoten (den Manager) haben, werden wir zunächst ein Szenario simulieren, in dem ein Knoten gestoppt wird, indem wir den Swarm auf dem aktuellen Knoten verlassen.

Zunächst verlassen Sie den Swarm auf dem aktuellen Knoten. Dadurch wird der Docker-Daemon aufgefordert, die Teilnahme am Swarm einzustellen.

docker swarm leave

Sie werden aufgefordert, zu bestätigen, dass Sie den Swarm verlassen möchten. Geben Sie y ein und drücken Sie die Eingabetaste.

Node left the swarm.

Wenn Sie sich jetzt auf einem anderen Manager-Knoten (Manager Node) im gleichen Swarm befänden, könnten Sie den Knoten entfernen, der gerade verlassen hat. Da wir uns auf dem einzigen Knoten befinden, werden wir den Swarm erneut initialisieren, um das Verhalten auf einem anderen Manager zu simulieren.

docker swarm init

Sie werden eine Ausgabe sehen, die anzeigt, dass der Swarm erneut initialisiert wurde.

Jetzt listen wir die Knoten im Swarm auf. Sie werden nur den aktuellen Knoten sehen.

docker node ls

Um das Entfernen eines gestoppten Knotens zu demonstrieren, müssen wir das Vorhandensein eines anderen Knotens simulieren, der den Swarm verlassen hat. Da wir in dieser Umgebung keinen anderen Knoten hinzufügen können, gehen wir zum nächsten Schritt über, der das Zwangsentfernen eines nicht erreichbaren Knotens behandelt. Dies ist ein häufigeres Szenario für das Entfernen von Knoten, die nicht mehr am Swarm teilnehmen.

Einen nicht erreichbaren Knoten (Node) zwangsweise aus dem Swarm entfernen

In diesem Schritt lernen Sie, wie Sie einen Knoten zwangsweise aus dem Swarm entfernen können, der nicht erreichbar oder nicht reagiert. Dies ist erforderlich, wenn ein Knoten fehlgeschlagen ist und nicht ordnungsgemäß entfernt werden kann.

Zunächst listen wir die Knoten im Swarm erneut auf, um die Knoten-ID (Node ID) zu erhalten.

docker node ls

Identifizieren Sie die ID des Knotens, den Sie zwangsweise entfernen möchten. In unserer aktuellen Konfiguration ist dies der einzige Knoten, der Manager-Knoten (Manager Node).

Um einen Knoten zwangsweise zu entfernen, verwenden Sie den Befehl docker node rm mit der Option --force, gefolgt von der Knoten-ID. Ersetzen Sie <node_id> durch die tatsächliche ID.

docker node rm --force <node_id>

Sie sollten eine Ausgabe sehen, die anzeigt, dass der Knoten entfernt wurde.

Node <node_id> removed from swarm

Jetzt listen wir die Knoten im Swarm erneut auf, um zu bestätigen, dass der Knoten entfernt wurde.

docker node ls

Sie werden eine Fehlermeldung sehen, da Sie den einzigen Knoten (den Manager) aus dem Swarm entfernt haben und der aktuelle Docker-Daemon nicht mehr Teil eines Swarms ist.

Error: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to a swarm.

Dies bestätigt, dass der Knoten erfolgreich aus dem Swarm entfernt wurde, auch wenn es sich um den Manager-Knoten handelte. Das Zwangsentfernen eines Manager-Knotens sollte mit Vorsicht erfolgen, da es die Verfügbarkeit Ihres Swarms beeinträchtigen kann, wenn keine anderen Manager vorhanden sind.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie Knoten (Nodes) in einem Docker Swarm mithilfe des Befehls docker node rm verwalten können. Sie haben zunächst einen Swarm initialisiert und die vorhandenen Knoten mit docker node ls aufgelistet, um ihre IDs und Status zu identifizieren.

Anschließend haben Sie versucht, einen laufenden Knoten zu entfernen und dabei gezeigt, dass ein Knoten aus dem Dienst genommen werden muss, bevor er entfernt werden kann. Danach haben Sie erfolgreich einen gestoppten Knoten entfernt und gelernt, wie Sie einen nicht erreichbaren Knoten zwangsweise aus dem Swarm entfernen können, wobei verschiedene Szenarien für die Knotenentfernung behandelt wurden.