Knoten zu einem Docker Swarm hinzufügen

DockerDockerBeginner
Jetzt üben

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

Einführung

Docker Swarm ist ein leistungsstarkes Werkzeug zur Orchestrierung und Verwaltung von Docker-Containern im großen Maßstab. In diesem Tutorial lernen Sie, wie Sie neue Knoten zu Ihrem bestehenden Docker Swarm-Cluster hinzufügen, um Ihre Infrastruktur zu erweitern und die Verfügbarkeit und Ausfallsicherheit Ihrer Anwendungen zu verbessern.

Grundlagen von Docker Swarm

Was ist Docker Swarm?

Docker Swarm ist eine native Clustering- und Scheduling-Lösung für Docker-Container. Sie ermöglicht es Ihnen, eine Gruppe von Docker-Engines, einen sogenannten Swarm, als eine einzige virtuelle Docker-Engine zu verwalten. Das bedeutet, dass Sie Ihre Anwendungen über mehrere Hosts verteilen und so hohe Verfügbarkeit und Skalierbarkeit gewährleisten können.

Schlüsselkonzepte in Docker Swarm

  • Knoten (Node): Ein Knoten ist eine Instanz der Docker-Engine, die am Swarm teilnimmt. Knoten können entweder Manager- oder Worker-Knoten sein.
  • Manager-Knoten (Manager Node): Manager-Knoten sind für die Verwaltung des Swarms verantwortlich, einschließlich der Planung von Aufgaben, der Aufrechterhaltung des Clusterzustands und der Failover-Handhabung.
  • Worker-Knoten (Worker Node): Worker-Knoten empfangen und führen Aufgaben aus, die von den Manager-Knoten verteilt werden.
  • Dienst (Service): Ein Dienst definiert den gewünschten Zustand einer Gruppe von Aufgaben (Containern) im Swarm. Dienste sind die Bausteine für die Bereitstellung von Anwendungen in einem Swarm.
  • Aufgabe (Task): Eine Aufgabe ist ein einzelner Container, der Teil eines Dienstes ist und auf einem Knoten ausgeführt werden soll.

Vorteile von Docker Swarm

  • Einfachheit: Docker Swarm ist in die Docker-Engine integriert, was die Einrichtung und Verwaltung vereinfacht.
  • Hohe Verfügbarkeit: Swarm bietet automatische Lastverteilung und Failover, um die hohe Verfügbarkeit Ihrer Anwendungen sicherzustellen.
  • Skalierbarkeit: Sie können Ihre Anwendungen einfach skalieren, indem Sie Knoten dem Swarm hinzufügen oder entfernen.
  • Sicherheit: Docker Swarm verwendet integrierte Sicherheitsfunktionen wie verschlüsselte Kommunikation und rollenbasierte Zugriffskontrolle.

Erste Schritte mit Docker Swarm

Um mit Docker Swarm zu beginnen, müssen Sie einen Swarm-Cluster einrichten. Dies beinhaltet die Initialisierung eines Manager-Knotens und anschließend das Hinzufügen von Worker-Knoten zum Swarm. Schauen wir uns ein Beispiel mit Ubuntu 22.04 an:

## Initialisierung des Swarms auf einem Manager-Knoten

## Beitritt eines Worker-Knotens zum Swarm

Sobald Sie einen Swarm eingerichtet haben, können Sie Ihre Anwendungen als Dienste bereitstellen.

Knoten zu einem Docker Swarm-Cluster hinzufügen

Hinzufügen von Worker-Knoten zum Swarm

Um Worker-Knoten zu Ihrem Docker Swarm-Cluster hinzuzufügen, können Sie den Befehl docker swarm join verwenden. Dieser Befehl benötigt den Join-Token, der vom Manager-Knoten abgerufen werden kann.

Führen Sie auf dem Manager-Knoten den folgenden Befehl aus, um den Join-Token zu erhalten:

docker swarm join-token worker

Dies gibt einen Befehl aus, den Sie verwenden können, um einen Worker-Knoten zum Swarm hinzuzufügen, zum Beispiel:

docker swarm join --token SWMTKN-1-49nj1cmql0jkz5s7riia...

Führen Sie nun auf dem Worker-Knoten den vom Manager-Knoten bereitgestellten Befehl aus, um dem Swarm beizutreten.

Hinzufügen von Manager-Knoten zum Swarm

Sie können auch Manager-Knoten zu Ihrem Docker Swarm-Cluster hinzufügen. Dies ist nützlich, um die Fehlertoleranz und Hochverfügbarkeit Ihres Swarms zu erhöhen.

Um einen neuen Manager-Knoten hinzuzufügen, führen Sie den folgenden Befehl auf dem neuen Knoten aus:

docker swarm join --token SWMTKN-1-61ztec9roubhglb7xbc...

Der zum Beitritt des Manager-Knotens verwendete Token kann von einem bestehenden Manager-Knoten mit folgendem Befehl abgerufen werden:

docker swarm join-token manager

Überprüfen des Knotenstatus

Nach dem Hinzufügen von Knoten zum Swarm können Sie den Befehl docker node ls verwenden, um den Status aller Knoten im Cluster anzuzeigen. Dies zeigt Ihnen die Rolle jedes Knotens (Manager oder Worker) und seinen aktuellen Status.

docker node ls

Dies gibt eine Tabelle mit Informationen zu jedem Knoten im Swarm aus.

Knoten aus dem Swarm entfernen

Wenn Sie einen Knoten aus dem Swarm entfernen müssen, können Sie den Befehl docker node rm verwenden. Um beispielsweise einen Worker-Knoten zu entfernen:

docker node rm worker-node

Um einen Manager-Knoten zu entfernen, müssen Sie ihn zuerst in einen Worker-Knoten herabstufen und ihn dann entfernen:

docker node demote manager-node
docker node rm manager-node

Denken Sie daran, die Knotenentfernung sorgfältig zu planen, da dies die Verfügbarkeit und Ausfallsicherheit Ihres Swarms beeinträchtigen kann.

Verwaltung und Überwachung von Swarm-Knoten

Überwachung von Swarm-Knoten

Um den Zustand und die Gesundheit Ihrer Docker Swarm-Knoten zu überwachen, können Sie die folgenden Befehle verwenden:

## Alle Knoten im Swarm auflisten
docker node ls

## Einen bestimmten Knoten untersuchen
docker node inspect knotennamen

## Knotenmetriken anzeigen
docker node ps knotennamen

Der Befehl docker node ls gibt Ihnen einen Überblick über alle Knoten in Ihrem Swarm, einschließlich ihrer Rolle (Manager oder Worker), ihres Status und ihrer Verfügbarkeit.

Der Befehl docker node inspect liefert detaillierte Informationen zu einem bestimmten Knoten, wie z. B. seiner IP-Adresse, Ressourcen und Labels.

Der Befehl docker node ps ermöglicht es Ihnen, die laufenden Aufgaben und Container auf einem bestimmten Knoten anzuzeigen.

Verwaltung von Swarm-Knoten

Zusätzlich zur Überwachung können Sie die Knoten in Ihrem Docker Swarm-Cluster auch mit verschiedenen Befehlen verwalten:

## Einen Worker-Knoten zu einem Manager-Knoten befördern
docker node promote worker-knoten

## Einen Manager-Knoten zu einem Worker-Knoten herabstufen
docker node demote manager-knoten

## Knotenlabels aktualisieren
docker node update --label-add label=wert knotennamen

## Einen Knoten deaktivieren (Verhinderung der Planung neuer Aufgaben)
docker node update --availability drain knotennamen

## Einen Knoten wieder aktivieren
docker node update --availability active knotennamen

Die Befehle docker node promote und docker node demote ermöglichen es Ihnen, die Rolle eines Knotens innerhalb des Swarms zu ändern.

Mit dem Befehl docker node update können Sie Labels auf einem Knoten hinzufügen, ändern oder entfernen. Labels können verwendet werden, um spezifische Einschränkungen oder Präferenzen bei der Planung von Aufgaben anzuwenden.

Der Befehl docker node update --availability drain ermöglicht es Ihnen, einen Knoten vorübergehend außer Betrieb zu nehmen und zu verhindern, dass neue Aufgaben darauf geplant werden. Dies kann für Wartungs- oder Upgrade-Arbeiten an einem Knoten nützlich sein.

Sicherung und Wiederherstellung des Swarm-Zustands

Es ist wichtig, den Zustand Ihres Docker Swarm-Clusters regelmäßig zu sichern, um eine Wiederherstellung bei Problemen oder Ausfällen zu gewährleisten. Sie können den Befehl docker swarm init --force-new-cluster verwenden, um einen neuen Swarm mit den Sicherungsdaten zu initialisieren.

Indem Sie diese Best Practices für die Verwaltung und Überwachung Ihrer Docker Swarm-Knoten befolgen, können Sie die Zuverlässigkeit und Ausfallsicherheit Ihrer containerisierten Anwendungen gewährleisten.

Zusammenfassung

Am Ende dieses Tutorials verfügen Sie über ein fundiertes Verständnis der Knotenzugabe zu einem Docker Swarm-Cluster. Sie können Ihre Docker-Infrastruktur skalieren, um sicherzustellen, dass Ihre Anwendungen erhöhte Arbeitslasten bewältigen und Ihre Dienste eine hohe Verfügbarkeit bieten. Dieses Wissen wird Ihnen wertvoll sein, wenn Sie weiterhin Ihre Docker-basierten Lösungen entwickeln und verwalten.