Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So lösen Sie das Problem der Blockierung des Swarm-Docker-Ports

So lösen Sie das Problem der Blockierung des Swarm-Docker-Ports

藏色散人
藏色散人Original
2022-01-20 14:29:205931Durchsuche

Lösung für den Swarm-Docker-Port-Fehler: 1. Bearbeiten Sie die Konfigurationsdatei und fügen Sie die Konfiguration „net.ipv4.ip_forward=1“ hinzu. 2. Starten Sie das Netzwerk über „systemctl restart network“ neu.

So lösen Sie das Problem der Blockierung des Swarm-Docker-Ports

Die Betriebsumgebung dieses Artikels: CentOS6.8-System, Docker-Version 18.09.x, Dell G3-Computer.

Wie kann das Problem der Blockierung des Swarm-Docker-Ports gelöst werden? Docker-Schwarm-Netzwerkproblem

Problem:

Das interne Netzwerk des Docker-Hosts ist normal, aber die Verbindung mit anderen Hosts schlägt fehl. Andere Hosts können keine Verbindung zu dem auf dem Docker-Host zugeordneten Port herstellen, und Docker kann keine Verbindung zu externen Hosts herstellen.

Die Serverumgebung ist wie folgt:

  • Das System ist Centos
  • Docker-Info
WARNING: IPv4 forwarding is disabled
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

Lösung

  • Bearbeiten Sie die Konfigurationsdatei

vim /etc/sysctl.conf

Fügen Sie die Konfiguration hinzu

net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-arptables=1
net.ipv4.ip_forward=1

Beispiel ecutesysctl -pEs wird wirksam

  • Starten Sie das Netzwerk neu

systemctl restart network

Überprüfen Sie die Docker-Informationen erneut, die Warnung verschwindet und das Docker-Netzwerk auf dem Host kehrt zum Normalzustand zurück.


Wichtiger Punkt für Cloud-Server

Der Server, den ich verwende, ist Alibaba Cloud Server
Wenn Ihr Cluster den Standardport 4789 verwendet, treten möglicherweise dasselbe Problem wie ich auf.

Im Hilfedokument von Alibaba Cloud steht dieser Satz:

Bevor Sie die UDP-Überwachung hinzufügen, beachten Sie bitte die folgenden Einschränkungen:
Die drei Ports 250, 4789 und 4790 der UDP-Überwachung sind reservierte Ports für das System und nicht geöffnet vorerst der Öffentlichkeit zugänglich machen.
Details

In den Versionen 19.03 und höher fügt Docker das Konfigurationselement –data-path-port uint32 bei Swarm-Init hinzu, um den VXLAN-Port von Docker Swarm zu ändern.
Das Problem wurde nach der Änderung des Ports erfolgreich gelöst

sudo docker swarm init --data-path-port 5789

Andere Probleme

Sehen Sie sich das Docker-Protokoll an (journalctl -u docker -n 20 -f) und finden Sie:

level=error msg="error reading the kernel parameter net.ipv4.vs.expire_nodest_conn" 
error="open /proc/sys/net/ipv4/vs/expire_nodest_conn: no such file or directory"

Der Grund dafür ist, dass der Host nicht geladen wird das ip_vs-Modul. Starten Sie Docker einfach neu, nachdem Sie das ip_vs-Modul auf jedem Knoten geladen haben. [Empfohlenes Lernen: „Docker-Video-Tutorial“]

modprobe ip_vs
service docker restart

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem der Blockierung des Swarm-Docker-Ports. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Ist Docker Open Source?Nächster Artikel:Ist Docker Open Source?