Lösung für das Problem, dass der externe Verifizierungslastenausgleich von Docker Swarm nicht wirksam wird

Lösung für das Problem, dass der externe Verifizierungslastenausgleich von Docker Swarm nicht wirksam wird

Problembeschreibung

Ich habe drei virtuelle Maschinen mit lokal installiertem Centos7 erstellt und den Swarm-Cluster initialisiert, nämlich einen Manager-Knoten und zwei Worker-Knoten. Die IP-Adressen der drei Maschinen lauten 192.168.124.8 - (manager節點) , 192.168.124.9 - (worker節點) , 192.168.124.10 - (worker節點)

[root@localhost ~]# Docker-Knoten ls
ID HOSTNAME STATUS VERFÜGBARKEIT MANAGER STATUS ENGINE VERSION
j0f4up8v7epacp3vceby4exsz localhost.localdomain Bereit Aktiv 19.03.13
qeeqc10gl9e56w61pajjqle08 localhost.localdomain Bereit Aktiv 19.03.13
r5sg5m9dkwcu76t56hg0vu29t * localhost.localdomain Bereit Aktiv Leader 19.03.14

Anschließend startete ich einen Dienst auf dem Swarm-Cluster mit folgendem Befehl

Docker-Dienst erstellen – Name Test-Abstimmung – Replikate 2 – Einschränkung node.role==worker – Veröffentlichen 8080:80 registry.cn-hangzhou.aliyuncs.com/anoy/vote

Durch direktes Curling des Worker-Knotens IP:Port kann eine Antwort erhalten werden, aber die zurückgegebene Container-ID bleibt unverändert. Wenn Sie direkt auf den Manager-Knoten zugreifen, erhalten Sie keine Antwort. Es scheint, dass der Lastenausgleich nicht effektiv ist!

lösen

Nach einigem Suchen habe ich die Antwort auf Stack Overflow gefunden: https://stackoverflow.com/questions/48360577/docker-swarm-mode-routing-mesh-not-working

Es stellte sich heraus, dass es ein Firewall-Problem war. Laut Dokumentation müssen tcp/udp -Port 7946 und udp Port 4789 geöffnet werden, bevor der Swarm-Cluster initialisiert wird, damit swarm mode routing mesh wirksam wird. https://docs.docker.com/engine/swarm/ingress/

Wenn es sich also um CentOS handelt, können Sie das folgende Skript verwenden, um den Port zu öffnen. Jeder Host im Swarm-Cluster muss geöffnet werden. Der Einfachheit halber werden sowohl TCP- als auch UDP-Ports geöffnet. Nach dem Öffnen des Ports müssen Sie den Computer neu starten.

Firewall-Befehl --permanent --zone=public --add-port=4789/tcp && \
Firewall-Befehl --permanent --zone=public --add-port=7946/tcp && \
Firewall-Befehl --permanent --zone=public --add-port=4789/udp && \
Firewall-Befehl --permanent --zone=public --add-port=7946/udp && \
Firewall-Befehl --reload && \
# Neustart sudo reboot

Dies ist das Ende dieses Artikels über die nicht wirksame externe Überprüfung des Lastausgleichs von Docker Swarm. Weitere relevante Inhalte zum Lastausgleich von Docker Swarm finden Sie in den vorherigen Artikeln von 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:
  • Detaillierte Erläuterung der Prinzipien der Diensterkennung und des Lastenausgleichs von Docker Swarm
  • Wie führt Docker Swarm einen bestimmten Container auf einem bestimmten Knoten aus?
  • Detaillierte Erklärung von Docker-Swarm-Clusterfehlern und Ausnahmen
  • 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

<<:  Zusammenfassung der am häufigsten verwendeten Wissenspunkte zu den neuen Funktionen von ES6

>>:  Referenzschreiben im JS- und CSS-Stil

Artikel empfehlen

Verständnis und Beispielcode des Vue-Standardslots

Inhaltsverzeichnis Was ist ein Slot Grundlegendes...

HTML implementiert die Funktion zur Erkennung der Eingabevervollständigung

Verwenden Sie „onInput(event)“, um festzustellen,...

Zusammenfassung und Beispiele der Kommunikationsmethoden für Vue3-Komponenten

Die Kommunikationsmodi der Vue3-Komponenten sind ...

Vorteile und Probleme des XHTML CSS Website Designs

XHTML ist die derzeit international verbreitete S...

Vue-Formulareingabebindung V-Modell

Inhaltsverzeichnis 1.v-Modell 2. Bindungseigensch...

Detaillierte Erklärung des Unterschieds zwischen Docker-Compose-Ports und Expose

Es gibt zwei Möglichkeiten, Container-Ports in Do...

Schnellstart-Tutorial zum Nginx-Dienst

Inhaltsverzeichnis 1. Einführung in Nginx 1. Was ...

So installieren Sie Redis in Docke

1. Suchen Sie nach einem Redis-Image Docker-Suche...

Lösen Sie das Problem des Docker-Pull-Image-Fehlers

beschreiben: Installieren Sie die VM unter Window...

Ausführliche Erläuterung der gespeicherten MySQL-Prozeduren (in, out, inout)

1. Einleitung Es wird seit Version 5.0 unterstütz...