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

Docker-Compose-Installationsmethode für die YML-Dateikonfiguration

Inhaltsverzeichnis 1. Offline-Installation 2. Onl...

Verstehen Sie das elastische CSS3 FlexBox-Layout in 10 Minuten

Grundlegende Einführung Merkmale Flexbox ist ein ...

Zusammenfassung der MySQL-Abfragesyntax

Vorwort: In diesem Artikel wird hauptsächlich die...

Docker startet Redis und legt das Passwort fest

Redis verwendet das Apline-Image (Alps) von Redis...

CSS setzt die Höhe des Box-Containers (div) immer auf 100 %

Vorwort Manchmal muss die Höhe eines Box-Containe...

So verwenden Sie Typescript zum Kapseln von lokalem Speicher

Inhaltsverzeichnis Vorwort Szenarien für die Verw...

Eine kurze Diskussion zum Problem des Docker-Run-Containers im erstellten Status

Bei einem aktuellen Problem gibt es folgendes Phä...

So zeichnen Sie eine Schaltfläche in XAML als Kreis neu

Beim Verwenden des XAML-Layouts müssen manchmal ei...

Detaillierte Erklärung zum Schreiben mehrerer Bedingungen von CSS: nicht

Der Pseudoklassenselektor :not kann Elemente filt...

8 JS reduziert Verwendungsbeispiele und reduzierte Betriebsmethoden

reduce Methode ist eine Array-Iterationsmethode. ...

Chinesische Lösung und Beispielcode für die MySQL-Volltextsuche

MySQL-Volltextsuche, chinesische Lösung Kürzlich ...