Ausführen von Verwaltungsbefehlen auf Nicht-Leader-Knoten
In einem Docker Swarm ist der Leader-Knoten für die wichtigen Entscheidungen und die Koordination der Aktionen der anderen Manager-Knoten verantwortlich. Es kann jedoch Situationen geben, in denen Sie Verwaltungsbefehle auf den Nicht-Leader-Knoten ausführen müssen, beispielsweise zu Wartungs- oder Troubleshooting-Zwecken.
Zugriff auf Nicht-Leader-Knoten
Um auf einen Nicht-Leader-Knoten in Ihrem Docker Swarm zuzugreifen, können Sie den Befehl docker node ssh
verwenden. Dieser Befehl ermöglicht es Ihnen, eine SSH-Verbindung zu einem bestimmten Knoten im Schwarm herzustellen.
docker node ssh <node-id>
Ersetzen Sie <node-id>
durch die ID des Nicht-Leader-Knotens, auf den Sie zugreifen möchten.
Ausführen von Verwaltungsbefehlen
Nachdem Sie eine SSH-Verbindung zum Nicht-Leader-Knoten hergestellt haben, können Sie nach Bedarf Verwaltungsbefehle ausführen. Einige gängige Verwaltungsbefehle, die Sie möglicherweise ausführen möchten, sind:
- Überprüfung des Status und der Rolle des Knotens:
docker node inspect < node-id > --pretty
- Anzeigen der Knotenprotokolle:
docker node logs <node-id>
- Ausführen eines Befehls auf dem Knoten:
docker exec -it <container-id> <command>
Beachten Sie, dass zwar Verwaltungsbefehle auf Nicht-Leader-Knoten ausgeführt werden können, die vorgenommenen Änderungen oder Aktionen jedoch keinen Einfluss auf den Gesamtzustand des Schwarms haben. Der Leader-Knoten ist weiterhin für die Aufrechterhaltung des gewünschten Zustands des Clusters verantwortlich.
Einschränkungen
Es ist wichtig zu beachten, dass die Ausführung von Verwaltungsbefehlen auf Nicht-Leader-Knoten einige Einschränkungen hat. Beispielsweise können Sie die Befehle docker service
oder docker stack
nicht auf Nicht-Leader-Knoten verwenden, da diese Befehle Zugriff auf den Zustand des Schwarms benötigen, der vom Leader-Knoten verwaltet wird.
Wenn Sie Aktionen durchführen müssen, die Zugriff auf den Zustand des Schwarms benötigen, sollten Sie dies auf dem Leader-Knoten tun oder den Befehl docker node exec
verwenden, um den Befehl auf dem Leader-Knoten von einem Nicht-Leader-Knoten auszuführen.