Analyse der Verwendung und des Prinzips der Docker Swarm-Clusterverwaltung

Analyse der Verwendung und des Prinzips der Docker Swarm-Clusterverwaltung

Schwarmclusterverwaltung

Einführung

Docker Swarm ist ein Clusterverwaltungstool für Docker. Es verwandelt einen Pool von Docker-Hosts in einen einzigen virtuellen Docker-Host. Docker Swarm stellt die standardmäßige Docker-API bereit, sodass jedes Tool, das bereits mit dem Docker-Daemon kommuniziert, Swarm verwenden kann, um problemlos auf mehrere Hosts zu skalieren.

Zu den unterstützten Tools gehören unter anderem die folgenden:

  • Dokkū
  • Docker Compose
  • Docker-Maschine

Prinzip

Wie in der folgenden Abbildung dargestellt, besteht der Swarm-Cluster aus einem Verwaltungsknoten (Manager) und einem Worker-Knoten (Arbeitsknoten).

  • Swarm-Manager: Verantwortlich für die Verwaltung des gesamten Clusters, einschließlich Clusterkonfiguration, Serviceverwaltung und aller anderen clusterbezogenen Aufgaben.
  • Arbeitsknoten: der in der Abbildung verfügbare Knoten, der hauptsächlich für die Ausführung der entsprechenden Dienste zur Aufgabenausführung verantwortlich ist.

Bildbeschreibung hier einfügen

verwenden

Die folgenden Beispiele basieren alle auf Docker Machine und VirtualBox. Stellen Sie sicher, dass VirtualBox auf Ihrem Host installiert wurde.

1. Erstellen Sie einen Schwarmcluster-Verwaltungsknoten (Manager).

Erstellen Sie eine Docker-Maschine:

$ Docker-Maschine erstellen -d Virtualbox Swarm-Manager 

Bildbeschreibung hier einfügen

Initialisieren Sie den Swarm-Cluster. Die Maschine, die die Initialisierung durchführt, ist der Verwaltungsknoten des Clusters.

$ Docker-Maschine SSH Schwarm-Manager
$ docker swarm init --advertise-addr 192.168.99.107 #Die hier angegebene IP ist die IP, die bei der Erstellung der Maschine zugewiesen wird. 

Bildbeschreibung hier einfügen

Die obige Ausgabe beweist, dass die Initialisierung erfolgreich war. Sie müssen die folgende Zeile kopieren, die beim Hinzufügen von Arbeitsknoten verwendet wird:

Docker-Schwarm beitreten --Token SWMTKN-1-4oogo9qziq768dma0uh3j0z0m5twlm10iynvz7ixza96k6jh9p-ajkb6w7qd06y1e33yrgko64sk 192.168.99.107:2377

2. Erstellen Sie einen Swarm-Cluster-Workerknoten (Worker).

Hier erstellen wir zwei Maschinen, swarm-worker1 und swarm-worker2.

Bildbeschreibung hier einfügen

Geben Sie die beiden Maschinen separat ein und geben Sie an, dass sie dem im vorherigen Schritt erstellten Cluster hinzugefügt werden sollen. Der im vorherigen Schritt kopierte Inhalt wird hier verwendet.

Bildbeschreibung hier einfügen

Die obige Datenausgabe zeigt an, dass es erfolgreich hinzugefügt wurde.

In der obigen Abbildung ist der im vorherigen Schritt kopierte Inhalt relativ lang und wird automatisch abgeschnitten. Die in der Abbildung tatsächlich ausgeführten Befehle lauten wie folgt:

docker@swarm-worker1:~$ docker swarm join --token SWMTKN-1-4oogo9qziq768dma0uh3j0z0m5twlm10iynvz7ixza96k6jh9p-ajkb6w7qd06y1e33yrgko64sk 192.168.99.107:2377

3. Clusterinformationen anzeigen

Rufen Sie den Verwaltungsknoten auf und führen Sie „Docker Info“ aus, um die Informationen zum aktuellen Cluster anzuzeigen.

$ Docker-Info 

Bildbeschreibung hier einfügen

4. Dienste im Cluster bereitstellen

Hinweis: Alle Vorgänge im Zusammenhang mit der Clusterverwaltung werden auf dem Verwaltungsknoten ausgeführt.

Das folgende Beispiel erstellt einen Dienst namens „helloworld“ auf einem Worker-Knoten, der zufällig einem Worker-Knoten zugewiesen wird:

docker@swarm-manager:~$ docker service create --replicas 1 --name hallo Welt alpine ping docker.com 

Bildbeschreibung hier einfügen

5. Dienstbereitstellung prüfen

Überprüfen Sie, auf welchem ​​Knoten der HelloWorld-Dienst ausgeführt wird. Sie können sehen, dass er derzeit auf dem Knoten Swarm-Worker1 ausgeführt wird:

docker@swarm-manager:~$ docker service ps hallo Welt 

Bildbeschreibung hier einfügen

Sehen Sie sich die detaillierten Informationen zur Bereitstellung von „Hello World“ an:

docker@swarm-manager:~$ docker service inspect --pretty hallo welt 

Bildbeschreibung hier einfügen

6. Erweiterung der Clusterdienste

Wir werden den oben genannten HelloWorld-Dienst auf zwei Knoten erweitern.

docker@swarm-manager:~$ docker service scale hallo welt=2 

Bildbeschreibung hier einfügen

Sie können sehen, dass es von einem Knoten auf zwei Knoten erweitert wurde.

Bildbeschreibung hier einfügen

7. Löschen von Diensten

docker@swarm-manager:~$ docker service rm hallo Welt 

Bildbeschreibung hier einfügen

Überprüfen Sie, ob es gelöscht wurde:

Bildbeschreibung hier einfügen

8. Rollierender Upgrade-Service

Im folgenden Beispiel stellen wir vor, wie ein Rolling Upgrade der Redis-Version auf eine höhere Version durchgeführt wird.

Erstellen Sie eine 3.0.6-Version von Redis.

docker@swarm-manager:~$ docker-Dienst erstellen --Replikate 1 --Name Redis --Update-Verzögerung 10 s Redis:3.0.6 

Bildbeschreibung hier einfügen

Laufendes Upgrade von Redis.

docker@swarm-manager:~$ docker-dienstaktualisierung --image redis:3.0.7 redis 

Bildbeschreibung hier einfügen

Aus dem Bild können wir ersehen, dass die Redis-Version von 3.0.6 auf 3.0.7 aktualisiert wurde, was darauf hinweist, dass der Dienst erfolgreich aktualisiert wurde.

9. Verhindern Sie, dass ein Knoten neue Aufgaben empfängt

Alle Knoten anzeigen:

docker@swarm-manager:~$ docker node ls 

Bildbeschreibung hier einfügen

Es ist ersichtlich, dass alle Knoten derzeit aktiv sind und neue Aufgabenzuweisungen erhalten können.

Stoppen Sie den Knoten Swarm-Worker1:

Bildbeschreibung hier einfügen

Hinweis: Der Status von Swarm-Worker1 ändert sich zu Drain. Der Clusterdienst ist davon nicht betroffen, aber der Knoten „swarm-worker1“ erhält keine neuen Aufgaben mehr und die Cluster-Ladekapazität verringert sich.

Der Knoten kann mit dem folgenden Befehl reaktiviert werden:

docker@swarm-manager:~$ docker node update --Verfügbarkeit aktiv swarm-worker1 

Bildbeschreibung hier einfügen

Dies ist das Ende dieses Artikels über die Verwendung und Prinzipanalyse der Docker Swarm-Clusterverwaltung. Weitere relevante Inhalte zur Docker Swarm-Clusterverwaltung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • So verwenden Sie Docker Swarm zum Erstellen von WordPress
  • Beispiel für die Verwendung von Docker Swarm zum Erstellen eines verteilten Crawler-Clusters
  • So verwenden Sie Docker Swarm zum Erstellen eines Clusters
  • Detaillierte Erläuterung zur Verwendung von Docker 1.12 zum Erstellen eines Docker-Schwarmclusters mit mehreren Hosts
  • So installieren Sie Docker und verwenden es im Docker Swarm-Modus
  • Einfaches Docker Swarm-Tutorial

<<:  HTML-Tutorial, leicht zu erlernende HTML-Sprache

>>:  Eine kurze Diskussion über vier Lösungen für Vue Single Page SEO

Artikel empfehlen

So implementieren Sie verteilte Transaktionen in MySQL XA

Inhaltsverzeichnis Vorwort XA-Protokoll So implem...

Lösung für die Auswirkungen leerer Pfade auf die Seitenleistung

Vor ein paar Tagen habe ich einen von Yu Bo getei...

Beispiel für einen Persistenzbetrieb mit Gearman + MySQL

Dieser Artikel verwendet die Gearman+MySQL-Method...

So implementieren Sie Bildmapping mit CSS

1. Einleitung Mit Imagemaps können Sie Bereiche e...

mysql5.7-Remotezugriffseinstellungen

Das Einrichten des Fernzugriffs in mysql5.7 funkt...

js behandelt die Kontoabmeldung beim Schließen des Browsers

Inhaltsverzeichnis Klassischer Ansatz Frage Weite...

Java-Beispielcode zum Generieren von zufälligen Zeichen

Beispielcode: importiere java.util.Random; import...

Implementierungscode für die HTML-Tabellenrahmensteuerung

Wenn wir eine Tabelle verwenden, weisen wir ihr i...

Implementierung eines Bootstrap-Webseiten-Layoutrasters

Inhaltsverzeichnis 1. So funktioniert das Bootstr...

Details zur Ereignisbindung reagieren

Inhaltsverzeichnis Ereignisbindung von Klassenkom...

So kompilieren Sie den Linux-Kernel

1. Laden Sie die erforderliche Kernel-Version her...

Allgemeine Datentypen in MySQL 5.7

——Anmerkungen aus „MySQL in einfachen Worten (zwe...