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

jQuery implementiert einen einfachen Kommentarbereich

In diesem Artikel wird der spezifische Code von j...

Eine benutzerfreundliche Alternative in Linux (Befehl fd)

Der Befehl fd bietet eine einfache und unkomplizi...

Tipps zum Gestalten der Fotovorschau-Navigation auf Webseiten

<br />Navigation bezieht sich nicht nur auf ...

Tutorial zu HTML-Tabellen-Tags (27): Zell-Hintergrundbild-Attribut BACKGROUND

Wir können ein Hintergrundbild für die Zelle fest...

Tutorial zur Installation von MySQL 8.0.11 mit RPM unter Linux (CentOS7)

Inhaltsverzeichnis 1. Installationsvorbereitung 1...

Front-End-JavaScript-Versprechen

Inhaltsverzeichnis 1. Was ist Promise 2. Grundleg...

Definition und Funktion des zoom:1-Attributs in CSS

Heute wurde ich gefragt, wozu das Zoom-Attribut i...

MYSQL Eine Frage zur Verwendung von Zeichenfunktionen zum Filtern von Daten

Problembeschreibung: Struktur: test hat zwei Feld...

Detaillierte Erklärung des Marquee-Attributs in HTML

Dieses Tag ist nicht Teil von HTML3.2 und wird nu...

10 hervorragende Web-UI-Bibliotheken/Frameworks

1. IT Mill-Toolkit IT Mill Toolkit ist ein Open-S...

Vue implementiert dynamische Routingdetails

Inhaltsverzeichnis 1. Frontend-Steuerung 1. In de...

Vue implementiert eine Komponente zur dynamischen Abfrageregelgenerierung

1. Dynamische Abfrageregeln Die dynamischen Abfra...