Vorwort Dieser Artikel ist lediglich eine einfache Aufzeichnung meines eigenen Konstruktionsprozesses. Sollten während des Trainings Fragen auftauchen, könnt ihr diese gemeinsam besprechen. Um die Clusterumgebung auf dem lokalen Computer (macOS) zu simulieren, werden vb und Docker-Machine verwendet. Die maschinelle Ausstattung für die kontinuierliche Integration ist wie folgt: 1. Serviceknoten: drei Managerknoten und ein Workerknoten. Der Manager muss mehr Ressourcen belegen, daher sollte die Managerkonfiguration so hoch wie möglich sein. Die Fehlertoleranzrate des Swarm-Manager-Knotens beträgt (N-1)/2. N ist die Anzahl der Managerknoten. Das heißt, wenn drei Manager vorhanden sind, kann der Ausfall eines Managerknotens toleriert werden. Offizielle Algorithmusbeschreibung: Raft-Konsens im Schwarmmodus. 2. Lokales Image-Repository-Register: Wird zum Speichern aller Service-Docker-Images verwendet, die bereitgestellt werden müssen. https://docs.docker.com/registry/deploying/ Da der Schwarmmechanismus verwendet wird, müssen bei der Kommunikation zwischen Diensten keine Probleme bei der Diensterkennung und dem Lastausgleich berücksichtigt werden (anstelle der ursprünglichen Konsul- und Registriermethode). 3. Erstellen Sie die Betriebs- und Wartungsknoten-Ops des Images: Das heißt, die Betriebs- und Wartungsmaschine. Ein einzelner Knoten reicht aus. Hauptsächlich verantwortlich für das Erstellen und Pushen von Bildern. Sie können in Ops ein privates Repository für Gitlab erstellen. Build-Skripte pflegen. Der Konfigurationsaufwand der Maschine ist nicht hoch, die Netzwerkbandbreite sollte jedoch möglichst hoch sein. Verwenden Sie Docker-Machine, um eine Clusterumgebung zu simulieren Erstellen eines Registrierungsknotens Docker-Maschine erstellen -d Virtualbox --virtualbox-memory "512" Registrierung –engine-registry-mirror Mit diesem Parameter können die Adressen einiger Beschleunigungs-Repositories festgelegt werden. Erstellen von Manager- und Workerknoten Manager Kopieren Sie den Code wie folgt: Docker-Maschine erstellen -d Virtualbox --virtualbox-memory "800" Manager1 Arbeitnehmer: Docker-Maschine erstellen -d Virtualbox --virtualbox-memory "800" Worker1 Docker-Maschine erstellen -d Virtualbox --virtualbox-memory "800" Worker2 Docker-Maschine erstellen -d Virtualbox --virtualbox-memory "800" Worker3 Erstellen eines Ops-Knotens Docker-Maschine erstellen -d Virtualbox --virtualbox-memory "512" ops Anzeigen des Maschinenlistenstatus Docker-Maschine ls Erstellen eines Registrierungsdienstes Melden Sie sich beim Registrierungscomputer an. Docker-Maschine SSH-Registrierung Erstellen Sie einen Registrierungsdienst. docker run -d -p 5000:5000 --restart=always --name registry \ -v `pwd` /data:/var/lib/registry \ Registrierung:2 Der Befehl setzt die Volumeoption -v, sodass die abgerufenen Image-Daten nicht bei jedem Neustart des Containerdienstes verloren gehen. Für Container mit Speichertypen wie Registry und MySQL wird empfohlen, das Volume festzulegen. Zur besseren Erweiterung können Sie das Image-Repository auch auf anderen Treibern sichern, beispielsweise auf OSS von Alibaba Cloud. Führen Sie Docker PS aus, um einen gestarteten Registrierungsdienst anzuzeigen. Zur besseren Erweiterbarkeit können Sie es natürlich auch unter Ihrem eigenen Domänennamen mounten und beim erneuten Ausführen Authentifizierungsinformationen hinzufügen. Um die Verwaltung von Containern zu vereinfachen, können Sie die Komponente Docker-Compose verwenden. Installieren: Kopieren Sie den Code wie folgt: curl -L "https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose Sie können auch direkt nach dem Schreiben der Compose-Datei beginnen: docker-compose up -d Push-Image des lokalen Repositorys Jetzt können Sie versuchen, ein Image abzurufen und es in Ihrer lokalen Registrierung zu markieren, z. B. Kopieren Sie den Code wie folgt: Docker Pull lijingyao0909/siehe: 1.0.3 && Docker-Tag lijingyao0909/siehe: 1.0.3 localhost:5000/siehe: 1.0.3 Führen Sie dann den Push-Befehl aus: docker push localhost:5000/siehe:1.0.3 Dieses Image wird an den Registrierungsdienst gesendet. Die direkteste Möglichkeit, die Imagedaten anzuzeigen, besteht darin, das lokale Datenträgerverzeichnis anzuzeigen, wie in diesem Beispiel das Datenverzeichnis. Kopieren Sie den Code wie folgt: docker run -it -p 8080:8080 --name Registrierungsweb --link Registrierungsservv -e REGISTRY_URL=http://registry-srv:5000/v2 -e REGISTRY_NAME=localhost:5000 hyper/docker-registry-web Besuchen Sie dann Hostname:5000/Registrierung/Index, um eine einfache Benutzeroberfläche mit einer Bilderliste anzuzeigen. https-Probleme Wenn Sie die oben genannten Schritte während lokaler Tests ausführen, können beim Pushen oder Pullen von Bildern in anderen VB-Versionen die folgenden Probleme auftreten:
Die Lösung besteht darin, die Registrierungsauthentifizierung zu ändern. Ändern Sie zunächst "/var/lib/boot2docker/profile" wie folgt: sudo vi /var/lib/boot2docker/profile Hinzufügen zu DOCKER_OPTS="--insecure-registry <Hostname>:5000" DOCKER_OPTS="--insecure-registry Registrierung:5000" Weil der Hostname der Registrierung Registry ist. Wenn Sie also den Befehl „Docker ifno“ ausführen, wird Folgendes angezeigt: Unsichere Register: Registrierung: 5000 127.0.0.0/8 Gleichzeitig muss auf anderen Arbeits- und Managercomputern das Attribut „–insecure-registry“ geändert werden, bevor das private Bibliotheksimage abgerufen werden kann. Nach der Änderung müssen Sie vb neu starten. Versuchen Sie nach dem Neustart erneut, den Manager zu ziehen Docker Pull Registry:5000/siehe:1.0.3 Sie können sehen, dass die Verbindung zum Repository erfolgreich hergestellt und das Image abgerufen wurde. Beachten Sie, dass in diesem Beispiel der Computername bzw. die Registrierung und nicht die IP-Adresse verwendet wird. Daher müssen Sie beim Abrufen des Images die Zuordnung zwischen IP und Computername in der Datei „etc/hosts“ jedes VB konfigurieren. Durch die Verwendung des Maschinennamens ist es einfacher, sich den Vorgang zu merken. Der beste Weg ist natürlich, über den Domänennamen auf das Lager zuzugreifen. Verweise Bereitstellen des Registrierungsdienstes Ops-Dienst erstellen Der Swarm-Service-Cluster zieht das Image direkt aus der Registrierung und startet den Anwendungsdienst direkt. Das Service-Image wird direkt in der Registrierung gespeichert, der Quellcode kann jedoch auf der Ops-Maschine verwaltet werden. Die zuvor erstellte Ops-Virtual-Box kann den Gitlab-Dienst bereitstellen. Informationen zu Startparametern finden Sie unter GitLab Docker-Images bereitstellen. Ziehen Sie zuerst ein Gitlab-Image docker run --detach \ --hostname gitlab.lijingyao.com \ --veröffentlichen 443:443 --veröffentlichen 80:80 --veröffentlichen 22:22 \ --name gitlab \ --restart immer \ --volume `pwd`/gitlab/config:/etc/gitlab \ --volume `pwd` /gitlab/logs:/var/log/gitlab \ --volume `pwd` /gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:8.14.4-ce.0 Verwenden eines privaten Git-Repositorys Da Port 80 gebunden ist, starten Sie Gitlab und besuchen Sie: http://machine-host/ Wenn Sie Gitlab zum ersten Mal aufrufen, werden Sie automatisch zum Zurücksetzen Ihres Passworts weitergeleitet. Sie können ein neues Passwort festlegen, welches das Passwort für das Root-Konto ist. Anschließend können Sie weitere Git-Benutzer zur Nutzung registrieren. Schwarm Der Dienst in diesem Beispiel ist ein einfaches Springboot- und Gradle-Projekt. Das Dienstimage kann vom Docker Hub abgerufen werden, siehe Dienstimage. Nachdem Sie das Image gepackt haben, übertragen Sie es direkt in der Gradle-Aufgabe in das Registrierungs-Repository. In der lokalen Umgebung kann es direkt im Projektverzeichnis ausgeführt werden. Die Gradle-Aufgabe wird dann in die VB-Registrierung übertragen und anschließend kann das Image aus dem Registrierungs-Repository abgerufen werden. Jetzt sind wir bereit, den Swarm-Cluster zu initialisieren. Jetzt lauten die Maschinen im gesamten VB-Cluster wie folgt: $ Docker-Maschine ls NAME AKTIV TREIBER STATUS URL SWARM DOCKER FEHLER haproxy - Virtualbox läuft tcp://192.168.99.103:2376 v1.12.3 manager1 - Virtualbox wird ausgeführt tcp://192.168.99.100:2376 v1.12.3 ops - Virtualbox läuft tcp://192.168.99.106:2376 v1.12.3 Registrierung - Virtualbox wird ausgeführt tcp://192.168.99.107:2376 v1.12.3 worker1 - Virtualbox läuft tcp://192.168.99.101:2376 v1.12.3 worker2 - virtualbox Läuft tcp://192.168.99.102:2376 v1.12.3 worker3 - Virtualbox läuft tcp://192.168.99.105:2376 v1.12.3 Verwenden Sie dann Docker-Machine SSH Manager1, um sich bei der Maschine Manager1 anzumelden. Initialisieren Sie den Swarm-Manager-Knoten Initialisieren Sie Swarm auf der Maschine manager1. Diese initialisierte Maschine ist der Manager des Swarms. Führen Sie Folgendes aus: Docker Swarm init --advertise-addr 192.168.99.100 Sie sehen die folgende Ausführungsausgabe: Swarm initialisiert: Der aktuelle Knoten (03x5vnxmk2gc43i0d7xpycvjg) ist jetzt ein Manager. Um diesem Schwarm einen Arbeiter hinzuzufügen, führen Sie den folgenden Befehl aus: Docker-Schwarm beitreten \ --token SWMTKN-1-5ru6lyco3upj7oje6hidug3erqczok84wk7bekzfaca4uv51r9-22bcjhkbxnclmw3nl3ui8601l \ 192.168.99.100:2377 Um diesem Swarm einen Manager hinzuzufügen, führen Sie „Docker Swarm Join-Token Manager“ aus und folgen Sie den Anweisungen. Der generierte Token-Wert ist der Schlüssel für andere Swarm-Clusterknoten, um dem gesamten Swarm beizutreten. Wenn Sie das Token vergessen, können Sie es auf Manager1 ausführen: $docker swarm Join-Token-Manager Um den aktuellen Token-Wert anzuzeigen. Die offizielle Empfehlung lautet, die folgenden Token mindestens alle 6 Monate auszutauschen. Ersetzen Sie den Befehl: $docker swarm join-token --rotate Arbeiter Hinzufügen eines Worker-Knotens Melden Sie sich jeweils bei Worker1, Worker2 und Worker3 an und führen Sie den Join-Befehl aus. Überprüfen Sie vor dem Beitritt die Docker-Netzwerkeinrichtungen. implementieren $ Docker-Netzwerk ls NETZWERK-ID-NAME TREIBER-UMFANG 4b7fe1416322 Brücke Brücke lokal 06ab6f3352b0 Host Host lokal eebd5c8e0d5d keine null lokal Führen Sie nach der Initialisierung von Manager1 gemäß dem Befehl Folgendes aus: Docker-Schwarm beitreten \ --token SWMTKN-1-5ru6lyco3upj7oje6hidug3erqczok84wk7bekzfaca4uv51r9-22bcjhkbxnclmw3nl3ui8601l \ 192.168.99.100:2377 Wenn Sie an diesem Punkt „Docker Network LS“ auf einem beliebigen Worker-Knoten ausführen, können Sie sehen, dass es einen zusätzlichen Overlay-Netzwerkkanal mit einer Swarm-Abdeckungsreichweite gibt. Nachdem alle drei Worker beigetreten sind, wird der Knotenstatus des Managers auf manager1 angezeigt. Docker-Knoten ls ID HOSTNAME STATUS VERFÜGBARKEIT MANAGER STATUS 03x5vnxmk2gc43i0d7xpycvjg * manager1 Bereit Aktiv Leiter 2y5wrndibe8c8sqv6851vrlgp worker1 Bereit Aktiv Erreichbar dwgol1uinkpsybigc1gm5jgsv worker2 Bereit Aktiv etgyky6zztrapucm59yx33tg1 worker3 Bereit Aktiv Erreichbar Der Status „Erreichbar“ des Managers zeigt an, dass der Knoten auch ein Managerknoten ist. Dies liegt daran, dass wir in worker1 bzw. worker3 Folgendes ausgeführt haben: Docker-Knoten fördert Worker1 Docker-Knoten fördern Worker3 Worker1 und Worker3 können zu diesem Zeitpunkt auch Schwarmbefehle ausführen. Wenn Manager1 heruntergefahren wird, wird einer von ihnen zum neuen Leiter gewählt. Wenn Sie den Managerstatus eines Knotens entfernen möchten, können Sie ihn mit dem Befehl „demote“ entfernen. Nach der Ausführung wird der Worker-Knoten zu einem normalen Task-Knoten. Docker-Knoten herabstufen Worker1 Worker3 Andere Zustände von Schwarmknoten Der Swarm-Knoten kann in den Drain-Zustand versetzt werden. Der Knoten im Drain-Zustand führt keinen Dienst aus. Legen Sie fest, dass ein Knoten nicht verfügbar ist: Docker-Knoten-Update – Verfügbarkeitsabfluss Worker1 Es gibt drei Zustände: Pause, Drain und Aktiv. Pause bedeutet, dass eine Aufgabe ausgeführt wird und keine neuen Aufgaben akzeptiert werden. Wenn Sie den Worker1-Knoten aus dem Swarm-Center entfernen möchten, führen Sie jetzt den zu entfernenden Knoten (Worker1) aus: „docker swarm leave“ und führen Sie dann auf dem Manager „docker node rm worker1“ aus, um einen Swarm-Knoten zu entfernen. Erstellen eines Schwarmdienstes In diesem Beispiel wird Swarm verwendet, um einen Springboot-basierten REST-API-Dienst bereitzustellen. Die Adresse des Lagers lautet springboot-restful-exam. Der erstellte Dienstname lautet deftsee, der an Port 80 gebunden ist und 4 laufende Containerdienste erweitert. Docker-Dienst erstellen \ --Replikate 4 \ --name deftsee \ --update-delay 10s \ --veröffentlichen 8080:80 \ lijingyao0909/siehe:1.0.3 Nachdem der Dienst erstellt wurde, können Sie den Status des Dienstknotens anzeigen docker@manager1:~$ Docker-Dienst ls ID NAME REPLIKATE BILD BEFEHL a6s5dpsyz7st deftsee 4/4 lijingyao0909/siehe:1.0.3 REPLICAS stellt die Anzahl der laufenden Container des Dienstes dar. Wenn es 0/4 ist, bedeutet dies, dass nicht alle Dienste gestartet wurden. Um den Betriebsstatus jedes Knotens im Detail anzuzeigen, können Sie den Docker-Dienst PS Servicename verwenden. docker@manager1:~$ docker service ps deftsee ID NAME BILD KNOTEN GEWÜNSCHTER ZUSTAND AKTUELLER ZUSTAND FEHLER 8lsdkf357lk0nmdeqk7bi33mp deftsee.1 lijingyao0909/see:1.0.3 worker2 Läuft Läuft vor 5 Minuten cvqm5xn7t0bveo4btfjsm04jp deftsee.2 lijingyao0909/see:1.0.3 manager1 Läuft Läuft vor 7 Minuten 6s5km76w2vxmt0j4zgzi4xi5f deftsee.3 lijingyao0909/see:1.0.3 worker1 Läuft Läuft vor 5 Minuten 4cl9vnkssedpvu2wtzu6rtgxl deftsee.4 lijingyao0909/see:1.0.3 worker3 Läuft Läuft vor 6 Minuten Sie können sehen, dass die Aufgaben zur Ausführung gleichmäßig auf alle vier Aufgabenknoten verteilt sind. Erweitern Sie als nächstes den deftsee-Dienst docker@manager1:~$ Docker-Dienstskala deftsee=6 deftsee skaliert auf 6 docker@manager1:~$ docker service ps deftsee ID NAME BILD KNOTEN GEWÜNSCHTER ZUSTAND AKTUELLER ZUSTAND FEHLER 8lsdkf357lk0nmdeqk7bi33mp deftsee.1 lijingyao0909/see:1.0.3 worker2 Läuft Läuft vor 8 Minuten cvqm5xn7t0bveo4btfjsm04jp deftsee.2 lijingyao0909/see:1.0.3 manager1 Läuft Läuft vor 10 Minuten 6s5km76w2vxmt0j4zgzi4xi5f deftsee.3 lijingyao0909/see:1.0.3 worker1 Läuft Läuft vor 8 Minuten 4cl9vnkssedpvu2wtzu6rtgxl deftsee.4 lijingyao0909/see:1.0.3 worker3 Läuft Läuft vor 9 Minuten 71uv51uwvso4l340xfkbacp2i deftsee.5 lijingyao0909/see:1.0.3 manager1 Läuft Läuft vor 5 Sekunden 4r2q7q782ab9fp49mdriq0ssk deftsee.6 lijingyao0909/see:1.0.3 worker2 Läuft Läuft vor 5 Sekunden lijingyao0909/see:1.0.3 ist ein Spiegel des öffentlichen Lagers von Dockerhub. Der Spiegel wird gezogen, wenn der Dienst erstellt wird. Die Gesamtgeschwindigkeit ist langsam, daher können Sie es mit einem privaten Lager kombinieren und den Spiegel direkt auf dem Registrierungscomputer ziehen. Der Dienst kann mit dem Docker-Dienst „rm deftsee“ direkt entfernt und anschließend über die Registrierung neu erstellt werden. Docker-Dienst erstellen \ --Replikate 6 \ --name deftsee \ --update-delay 10s \ --veröffentlichen 8080:80 \ Registrierung: 5000/siehe: 1.0.4 Melden Sie sich jetzt bei einem beliebigen Worker-Dienst an und zeigen Sie das laufende Container-Image an: docker@worker2:~$ docker ps CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN 89d4f588290b registry:5000/see:1.0.4 "/bin/sh -c 'java -Dc" Vor etwa einer Minute Aktiv Vor etwa einer Minute 8080/tcp deftsee.1.eldpgb1aqtf9v49cxolydfjm9 Wenn Sie den Dienst aktualisieren möchten, können Sie die Version direkt über den Update-Befehl aktualisieren. Der Dienst wird dann fortlaufend freigegeben. Durch Festlegen von *–update-delay 10s * können Sie die Verzögerungszeit jedes Knotens während der Aktualisierung ändern. Docker-Dienstaktualisierung --Image-Registrierung: 5000/siehe: 1.0.5 deftsee Neustarten eines Knotendienstes Herunterfahren: Docker-Knoten-Update – Verfügbarkeitsabfluss Worker1 Öffnen: Docker-Knoten-Update – Verfügbarkeit aktiver Worker1 Service-Port aktualisieren Durch das Aktualisieren des Ports eines Dienstes wird der Dienst neu gestartet (der ursprüngliche Dienst wird heruntergefahren, der Dienst wird neu erstellt und dann neu gestartet): Docker-Dienstaktualisierung \ --publish-add <VERÖFFENTLICHTER-PORT>:<ZIEL-PORT> \ <BEDIENUNG> docker@manager1:~$ Docker-Dienstaktualisierung \ --veröffentlichen-add 8099:8080 \ deftsee docker@manager1:~$ docker service ps deftsee ID NAME BILD KNOTEN GEWÜNSCHTER ZUSTAND AKTUELLER ZUSTAND FEHLER 3xoe34msrht9eqv7eplnmlrz5 deftsee.1 registry:5000/see:1.0.4 manager1 Läuft Läuft vor 39 Sekunden eldpgb1aqtf9v49cxolydfjm9 \_ deftsee.1 registry:5000/see:1.0.4 worker2 Herunterfahren Herunterfahren vor 39 Sekunden 9u4fh3mi5kxb14y6gih5d8tqv deftsee.2 registry:5000/see:1.0.4 manager1 Läuft Läuft vor etwa einer Minute 0skgr5fx4xtt6y71yliksoft0 \_ deftsee.2 registry:5000/see:1.0.4 worker1 Herunterfahren Herunterfahren vor etwa einer Minute 8hposdkqe92k7am084z6kt1j0 deftsee.3 registry:5000/see:1.0.4 worker3 Läuft Läuft vor etwa einer Minute c5vhx1wx0q8mxaweaq0mia6n7 \_ deftsee.3 registry:5000/see:1.0.4 manager1 Herunterfahren Herunterfahren vor etwa einer Minute 9se1juxiinmetuaccgkjc3rr2 deftsee.4 registry:5000/see:1.0.4 worker1 Läuft Läuft vor etwa einer Minute 4wofho0axvrjildxhckl52s41 \_ deftsee.4 registry:5000/see:1.0.4 worker3 Herunterfahren Herunterfahren vor etwa einer Minute Dienstauthentifizierung und Netzwerk Nachdem der Dienst im Beispiel gestartet wurde, kann er direkt über ip:port aufgerufen werden. Wenn Sie beispielsweise http://192.168.99.100:8099/see aufrufen, können Sie sehen, dass die Serviceanforderung an jeden laufenden Knoten verteilt wird. Dies ist die Overlay-Netzwerkschicht von Swarm. Die Netzwerke der einzelnen Knoten sind miteinander verbunden. Swarm sorgt für den Lastenausgleich. Basierend auf der LB von Swarm können Sie auch Ihr eigenes Overlay-Netzwerk erstellen. Alle Knoten im erstellten Overlay-Netzwerk können mit diesem Netzwerk kommunizieren. Allerdings müssen beim Erstellen des Dienstes Netzwerkoptionen angegeben werden. $Docker-Netzwerk erstellen \ --Treiber-Overlay \ --subnet 10.0.9.0/24 \ --opt verschlüsselt \ mein-netzwerk $ Docker-Dienst erstellen \ --name deftsee \ --veröffentlichen 8099:80 \ --Replikate 4 \ --network mein-Netzwerk \ -l com.df.serviceDomain=deftsee.com \ -l com.df.notify=true \ lijingyao0909/siehe:1.0.3 –network my-network gibt das Docker-Netzwerk an, mit dem der Dienst eine Verbindung herstellen kann. Sie können auf dem Swarm-Knoten ein Netzwerk mit dem Namen my-network erstellen. Daher ist es auch möglich, die Serviceerkennung und den LB-Mechanismus von Consul und Haproxy in den Swarm-Mechanismus einzubinden. Wenn für einen Dienst ein Netzwerk angegeben ist, müssen sich die auf dem Schwarm ausgeführten Aufgaben auch in diesem angegebenen Netzwerk befinden, um mit dem Dienst kommunizieren zu können. Wenn der Knoten nicht zum Swarm-Modus-Knoten hinzugefügt wird oder nicht ausgeführt wird und in diesem angegebenen Netzwerk gemountet ist, kommuniziert er nicht mit diesem Netzwerk. Docker-Netzwerk-LS erkennt das Netzwerk nicht. Wenn Sie einen Dienst erstellen, verknüpfen Sie ihn mit dem Tag --network my-network mit diesem Netzwerk. Beim Anzeigen des Netzwerks können Sie „Docker Network Inspection My-Network“ verwenden, um die gemounteten Container des Knotens anzuzeigen, der in den zurückgegebenen Containern aufgelistet ist. Ein Netzwerkdienst wird erstellt. Wenn ein Dienst mit dem Netzwerk verbunden ist, weist Swarm dem Dienst in diesem Netzwerk eine VIP zu. Das lb innerhalb von Swarm verteilt den Dienst automatisch. Es ist nicht erforderlich, jeden Dienstport anzugeben. Das heißt, Container, die mit demselben Netzwerk verbunden sind, können über den Dienstnamen auf den Dienst zugreifen. Denn alle zu diesem Netzwerk hinzugefügten Container teilen sich eine DNS-Zuordnung über das Gossip-Protokoll (die VIP-Zuordnung basiert auf der an den Dienstnamen gebundenen DNS-Alias-Zuordnung). Sehen Sie sich die VIP-Netzwerkinformationen des Dienstes an: $ Docker-Dienst inspizieren \ --format='{{json .Endpoint.VirtualIPs}}' \ deftsee Ausgabe: [{"NetworkID":"dn05pshfagohpebgonkhj5kxi","Addr":"10.255.0.6/16"}] Schwarmmanagement Um die Verfügbarkeit des Managerknotens (Heartbeat-Mechanismus, Leiterwahl) aufrechtzuerhalten, kann der Managerknoten so eingestellt werden, dass er keine Servicevorgänge akzeptiert, Managerknotenressourcen spart und den Managerknoten von der Aufgabenumgebung isoliert. Docker-Knoten-Update – Verfügbarkeitsabfluss <KNOTEN> Sichern Sie den Status von /var/lib/docker/swarm/raft. Nicht verfügbare Knoten bereinigen Docker-Knoten herabstufen <NODE> Docker-Knoten rm <ID-Knoten>. Der Knoten tritt dem Manager wieder bei $docker-Knoten herabstufen <NODE>. $docker node rm <KNOTEN>. $ Docker-Schwarm beitreten … Geben Sie während der Initialisierung eine feste IP-Adresse an: init –advertise-addr. Worker-Knoten können dynamische IP verwenden. Verweise Schwarmmodus 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:
|
<<: Detaillierte Diskussion der InnoDB-Sperren (Record-, Gap-, Next-Key-Sperre)
>>: Vue Grundanleitung Beispiel grafische Erklärung
1. Reinigen Sie vor der Installation gründlich rp...
Inhaltsverzeichnis 1. Aggregierte Abfrage 1. COUN...
HTML-Eingabeattribute Das Value-Attribut Das Valu...
Es gibt erhebliche Unterschiede zwischen CentOS7 ...
Vorwort 1. Entprellen: Nach dem Auslösen eines Ho...
In diesem Artikelbeispiel wird der spezifische Co...
1. Fügen Sie den Isolationsmarker hinzu: ip netns...
Durch die Verwendung von JS im Webdesign können vi...
Inhaltsverzeichnis Vorwort analysieren Erste Rend...
Ich möchte einen Artikel von Zhang Xinxu zitieren...
<Text> <div id="Wurzel"> &l...
Dieser Artikel veranschaulicht anhand von Beispie...
Inhaltsverzeichnis 1. Traversal-Klasse 1. fürJede...
Inhaltsverzeichnis Vorwort 1. Die Bedeutung der K...
<br />Die unzähligen Informationen im Intern...