Über Docker Swarm Docker Swarm besteht aus zwei Teilen:
Offizielle Informationen: https://docs.docker.com/swarm/ Netzwerkdiagramm Die folgende Abbildung ist ein typisches Docker Swarm-Cluster-Bereitstellungsdiagramm von der offiziellen Docker-Website: Folgen Sie als Nächstes dem obigen Bild, um einen Docker Swarm-Cluster zu erstellen. Vorbereitung Insgesamt wurden bei diesem tatsächlichen Kampf fünf Maschinen eingesetzt und die Konfigurationsinformationen sind alle dieselben und lauten wie folgt:
Die Maschineninformationen sind in der folgenden Tabelle aufgeführt:
Warum drei Verwaltungsknoten? Wie aus dem offiziellen Diagramm ersichtlich, verwendet die interne Verwaltungskoordination zwischen den Verwaltungsknotenclustern den Raft-Konsensalgorithmus, der die hohe Verfügbarkeit (HA) der Verwaltungsknoten gewährleistet. Im Allgemeinen wird auf die folgenden zwei Prinzipien verwiesen:
Übersicht über die Schritte zur Clusterbereitstellung Der gesamte Bereitstellungsprozess gliedert sich in die folgenden Schritte:
Jetzt fangen wir offiziell an; Initialisieren Sie den ersten Verwaltungsknoten (m0). Die IP-Adresse des m0-Knotens lautet 192.168.121.142, führen Sie daher den folgenden Befehl auf dem m0-Knoten aus: Docker-Schwarm-Init \ --advertise-addr 192.168.121.142:2377 --listen-addr 192.168.121.142:2377 In Bezug auf die beiden Parameter Advertise-Addr und Listen-Addr wird ersterer verwendet, um die Adresse anderer Knoten beim Herstellen einer Verbindung mit m0 anzugeben, und letzterer gibt die IP und den Port an, die den Schwarmverkehr übertragen. Weitere Einzelheiten und tiefere Unterschiede finden Sie im Artikel: https://boxboat.com/2016/08/17/whats-docker-swarm-advertise-addr/ 2. Die Konsole gibt die folgenden Informationen zurück und zeigt damit an, dass der Swarm-Cluster erfolgreich initialisiert wurde: Swarm initialisiert: Der aktuelle Knoten (7585zt09o2sat82maef0ocf42) ist jetzt ein Manager. Um diesem Schwarm einen Arbeiter hinzuzufügen, führen Sie den folgenden Befehl aus: Docker-Schwarm beitreten \ --token SWMTKN-1-5huefb5501cv7p8i2op1am2oevasoqu4te8vpvapndkudvszb4-e8l6755jstd7urpdo5smyi8fv \ 192.168.121.142:2377 Um diesem Swarm einen Manager hinzuzufügen, führen Sie „Docker Swarm Join-Token Manager“ aus und folgen Sie den Anweisungen. Listen Sie alle Knoten im aktuellen Swarm-Cluster auf, und Sie können den Status und die Identität des einzigen Knotens m0 sehen: [root@m0 ~]# Docker-Knoten ls ID HOSTNAME STATUS VERFÜGBARKEIT MANAGER STATUS 7585zt09o2sat82maef0ocf42 * m0 Bereit Aktiver Anführer Nachdem der Cluster nun eingerichtet wurde, müssen wir weitere Verwaltungsknoten und Arbeitsknoten hinzufügen. Wie füge ich einen neuen Knoten hinzu? Die Strategie für neue Knoten, die Docker Swarm beitreten, besteht darin, eine lange Befehlsfolge vom Verwaltungsknoten abzurufen, die als Join-Token bezeichnet wird. Jede Maschine, die dem Cluster beitreten möchte, kann dem Swarm-Cluster beitreten, indem sie dieses Join-Token selbst ausführt. Wenn ein neuer Verwaltungsknoten hinzugefügt werden muss, führen Sie den Befehl [root@m0 ~]# Docker Swarm-Join-Token-Manager Um diesem Swarm einen Manager hinzuzufügen, führen Sie den folgenden Befehl aus: Docker-Schwarm beitreten \ --token SWMTKN-1-5huefb5501cv7p8i2op1am2oevasoqu4te8vpvapndkudvszb4-5tz9d4w7nwzu8r4ozd0ff2aiu \ 192.168.121.142:2377 Wenn ein neuer Worker-Knoten hinzugefügt werden muss, führen Sie den Befehl „Docker Swarm Join-Token Worker“ in m0 aus, um das Join-Token des Worker-Knotens abzurufen, wie unten gezeigt: [root@m0 ~]# Docker Swarm Join-Token-Arbeiter Um diesem Schwarm einen Arbeiter hinzuzufügen, führen Sie den folgenden Befehl aus: Docker-Schwarm beitreten \ --token SWMTKN-1-5huefb5501cv7p8i2op1am2oevasoqu4te8vpvapndkudvszb4-e8l6755jstd7urpdo5smyi8fv \ 192.168.121.142:2377 Beide Join-Token sind bereit und dann beginnen wir mit dem Hinzufügen neuer Knoten. Verwaltungsknoten m1 und m2 hinzufügen Führen Sie den zuvor erhaltenen Management-Node-Join-Token auf m1 aus: [root@m1 ~]# Docker-Schwarm beitreten \ > --token SWMTKN-1-5huefb5501cv7p8i2op1am2oevasoqu4te8vpvapndkudvszb4-5tz9d4w7nwzu8r4ozd0ff2aiu \ > 192.168.121.142:2377 Dieser Knoten ist einem Schwarm als Manager beigetreten. Machen Sie dasselbe auf m2; Führen Sie den Befehl „docker node ls“ auf einem der Knoten m0, m1 und m2 aus, um den aktuellen Status des Swarm-Clusters anzuzeigen. Wie in der folgenden Abbildung dargestellt, befinden sich alle drei Verwaltungsknoten im Normalzustand. Das ID-Feld hat ein Sternchen als Suffix, was darauf hinweist, dass die Maschine, die den Befehl derzeit ausführt, m1 ist: [root@m1 ~]# Docker-Knoten ls ID HOSTNAME STATUS VERFÜGBARKEIT MANAGER STATUS 0isfyre69mdu1hm11esf1q3dk m2 Bereit Aktiv Erreichbar 7585zt09o2sat82maef0ocf42 m0 Bereit Aktiver Anführer slc0hjbs7jh2hdi8ai3wohy23 * m1 Bereit Aktiv Erreichbar Arbeitsknoten w0 und w1 verbinden Führen Sie den Join-Token des zuvor erhaltenen Arbeitsknotens auf w0 aus: [root@w0 ~]# Docker-Schwarm beitreten \ > --token SWMTKN-1-5huefb5501cv7p8i2op1am2oevasoqu4te8vpvapndkudvszb4-e8l6755jstd7urpdo5smyi8fv \ > 192.168.121.142:2377 Dieser Knoten ist einem Schwarm als Arbeiter beigetreten. Führen Sie die gleiche Operation auf w1 aus; Führen Sie den Befehl docker node ls auf einem der Knoten m0, m1 und m2 aus, um den aktuellen Status des Swarm-Clusters anzuzeigen. Sie können sehen, dass alle Arbeitsknoten bereit sind: [root@m0 ~]# Docker-Knoten ls ID HOSTNAME STATUS VERFÜGBARKEIT MANAGER STATUS 0isfyre69mdu1hm11esf1q3dk m2 Bereit Aktiv Erreichbar 7585zt09o2sat82maef0ocf42 * m0 Bereit Aktiver Anführer i71bcxt1auc804syybroajtan w1 Bereit Aktiv slc0hjbs7jh2hdi8ai3wohy23 m1 Bereit Aktiv Erreichbar wqcwcccva3d3mxgi5p423d4fv w0 Bereit Aktiv An diesem Punkt ist die Swarm-Clusterumgebung erstellt und kann als Nächstes überprüft werden. Überprüfen der Swarm-Clusterumgebung Erstellen Sie ein Overlay-Netzwerk mit dem Namen tomcat-net. Dies ist ein Layer-2-Netzwerk. Docker-Container in diesem Netzwerk können aufeinander zugreifen, auch wenn die Hostcomputer unterschiedlich sind: Docker-Netzwerk erstellen -d Overlay Tomcat-Net Erstellen Sie einen Dienst namens Tomcat und verwenden Sie dabei das soeben erstellte Overlay-Netzwerk: Docker-Dienst erstellen --Name Tomcat \ --Netzwerk Tomcat-Net \ -p 8080:8080 \ --Replikate 3 \ Tomcat: 7.0.96-jdk8-openjdk Führen Sie den Befehl „Docker Service ls“ aus, um alle aktuellen Dienste anzuzeigen: [root@m0 ~]# Docker-Dienst ls ID NAME MODUS REPLIKATE BILD kguawc4b5th4 Tomcat repliziert 3/3 Tomcat:7.0.96-jdk8-openjdk Führen Sie den Befehl docker service ps tomcat aus, um den Dienst mit dem Namen tomcat anzuzeigen. Sie können sehen, dass die drei Container jeweils auf den Maschinen m0, m2 und w1 bereitgestellt sind: [root@m0 ~]# Docker-Dienst PS Tomcat ID NAME BILD KNOTEN GEWÜNSCHTER ZUSTAND AKTUELLER ZUSTAND FEHLER PORTS n1gs9f1plce2 tomcat.1 tomcat:7.0.96-jdk8-openjdk w1 Läuft Läuft vor 19 Minuten q8jyg088ci21 tomcat.2 tomcat:7.0.96-jdk8-openjdk m2 Läuft Läuft vor 19 Minuten h9ww33dpw56m tomcat.3 tomcat:7.0.96-jdk8-openjdk m0 Läuft Läuft vor 19 Minuten Führen Sie den Befehl „docker service inspect --pretty tomcat“ aus, um ausführliche Informationen zum Dienst mit dem Namen „tomcat“ anzuzeigen (entfernen Sie „–pretty“, um eine umfassendere Ansicht zu erhalten): [root@m0 ~]# Docker-Dienst inspizieren --pretty Tomcat ID: kguawc4b5th4qlwlsv183qtai Name: Kater Servicemodus: Repliziert Replikate: 3 Platzierung: Konfiguration aktualisieren: Parallelität: 1 Bei Fehler: Pause Maximale Ausfallrate: 0 Containerspezifikation: Bild: tomcat:7.0.96-jdk8-openjdk@sha256:91eadffb59d9a35ada2d39fcd616a749ac580aa5e834499b7128f27be2e46623 Ressourcen: Netzwerke: tomcat-net Endpunktmodus: vip Häfen: VeröffentlichtPort 8080 Protokoll = tcp ZielPort = 8080 Öffnen Sie den Browser und versuchen Sie, auf Port 8080 der fünf Maschinen m0, m1, m2, w0 und w1 zuzugreifen. Sie können erfolgreich auf die Tomcat-Homepage zugreifen: Servicemodell
Docker-Dienst erstellen --Name Tomcat \ --Netzwerk Tomcat-Net \ --publish veröffentlicht=8080,Ziel=8080,Modus=Host \ --Replikate 3 \ Tomcat: 7.0.96-jdk8-openjdk Service-Skalierung Führen Sie den Befehl „docker service scale tomcat=5“ aus, um die Anzahl der Replikate von 3 auf 5 anzupassen: [root@m0 ~]# Docker-Dienst skalieren Tomcat=5 Kater auf 5 skaliert Führen Sie den Befehl docker service ps tomcat aus, um den Dienst mit dem Namen tomcat anzuzeigen. Sie können sehen, dass auf jeder Maschine ein Container verteilt ist: [root@m0 ~]# Docker-Dienst PS Tomcat ID NAME BILD KNOTEN GEWÜNSCHTER ZUSTAND AKTUELLER ZUSTAND FEHLER PORTS w32tjahze2fk tomcat.1 tomcat:7.0.96-jdk8-openjdk m2 Läuft Läuft vor 42 Minuten yj5czwwhrrsh tomcat.2 tomcat:7.0.96-jdk8-openjdk m0 Läuft Läuft vor 42 Minuten pq40995nbd0k tomcat.3 tomcat:7.0.96-jdk8-openjdk w1 Läuft Läuft vor 42 Minuten y1y6z1jczel1 tomcat.4 tomcat:7.0.96-jdk8-openjdk m1 Läuft Läuft vor etwa einer Minute w0dcii8f79os tomcat.5 tomcat:7.0.96-jdk8-openjdk w0 Läuft Läuft vor etwa einer Minute Laufendes Upgrade Im aktuellen Tomcat-Dienst lautet das Tag des Tomcat-Images Docker-Dienstaktualisierung \ --image tomcat:9.0.24-jdk11-openjdk \ --update-parallelism 1 \ --update-delay 10 s Tomcat Zum obigen Befehl sind einige Dinge zu beachten: 2. Führen Sie während des Aktualisierungsvorgangs den Befehl [root@m0 ~]# Docker-Dienst PS Tomcat ID NAME BILD KNOTEN GEWÜNSCHTER ZUSTAND AKTUELLER ZUSTAND FEHLER PORTS w32tjahze2fk tomcat.1 tomcat:7.0.96-jdk8-openjdk m2 Läuft Läuft vor 56 Minuten yj5czwwhrrsh tomcat.2 tomcat:7.0.96-jdk8-openjdk m0 Läuft Läuft vor 56 Minuten semuna9awsn7 tomcat.3 tomcat:9.0.24-jdk11-openjdk w1 Läuft Läuft vor 15 Sekunden pq40995nbd0k \_ tomcat.3 tomcat:7.0.96-jdk8-openjdk w1 Herunterfahren Herunterfahren vor etwa einer Minute y1y6z1jczel1 tomcat.4 tomcat:7.0.96-jdk8-openjdk m1 Läuft Läuft vor 15 Minuten oot3yex74v4t tomcat.5 tomcat:9.0.24-jdk11-openjdk w0 Wird ausgeführt Vorbereitung vor 5 Sekunden w0dcii8f79os \_ tomcat.5 tomcat:7.0.96-jdk8-openjdk w0 Herunterfahren Herunterfahren vor 3 Sekunden Nachdem das Upgrade abgeschlossen ist, greifen Sie über den Browser auf den Dienst zu. Sie können sehen, dass die Tomcat-Version aktualisiert wurde: Löschen eines Dienstes Führen Sie den Befehl „docker service rm tomcat“ aus, um den Dienst zu löschen: [root@m0 ~]# Docker-Dienst rm Tomcat Kater [root@m0 ~]# Docker-Dienst ls ID NAME MODUS REPLIKATE BILD Bisher haben Sie Docker Swarm von der Bereitstellung bis zum grundlegenden Betrieb kennengelernt. Ich hoffe, dieser Artikel kann Ihnen beim Erstellen der Umgebung einige Referenzen geben. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Analyse des Prinzips der Verwendung von PDO zur Verhinderung von SQL-Injection
>>: Mehrere Möglichkeiten, Axios in Vue zu kapseln
Im Prozess der Teamentwicklung ist die Formulieru...
1. Kauf des Servers 1. Ich habe mich für den Serv...
Bash-Initialisierungsdateien Interaktive Login-Sh...
Inhaltsverzeichnis 1. Grundtypen 2. Objekttyp 2.1...
Das feste Layout des Seitenkopfes wurde zuvor mit...
Bisher wurden die von uns verwendeten Images alle...
Vorwort var ist eine Möglichkeit, Variablen in ES...
1. Docker auf dem Server installieren yum install...
Da das Problem ziemlich plötzlich auftrat und das...
In diesem Artikel wird der spezifische Code von j...
0. Als ich dieses Dokument erstellte, war es unge...
Vor einigen Tagen erhielt eine Kollegin ein Punkt...
In diesem Artikel erfahren Sie, wie Sie Nginx so ...
Auslassungspunkte werden angezeigt, wenn mehrzeil...
In der Vergangenheit bedeutete das Erstellen eine...