Heim >Betrieb und Instandhaltung >Docker >So lösen Sie das Problem der Blockierung des Swarm-Docker-Ports
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.
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
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.
WARNING: IPv4 forwarding is disabled WARNING: bridge-nf-call-iptables is disabled WARNING: bridge-nf-call-ip6tables is disabled
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 -p
Es 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.
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
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!