Maison >Opération et maintenance >Docker >Comment résoudre le problème du blocage du port Docker Swarm

Comment résoudre le problème du blocage du port Docker Swarm

藏色散人
藏色散人original
2022-01-20 14:29:205993parcourir

Solution à l'échec du port Swarm Docker : 1. Modifiez le fichier de configuration et ajoutez la configuration "net.ipv4.ip_forward=1" ; 2. Redémarrez le réseau via "systemctl restart network".

Comment résoudre le problème du blocage du port Docker Swarm

L'environnement d'exploitation de cet article : système centOS6.8, Docker version 18.09.x, ordinateur Dell G3.

Comment résoudre le problème du blocage du port Swarm Docker ? Problème de réseau Docker Swarm

Problème :

Le réseau interne de l'hôte Docker est normal, mais la connexion avec d'autres hôtes échoue. Les autres hôtes ne peuvent pas se connecter au port mappé sur l'hôte Docker et Docker ne peut pas se connecter aux hôtes externes.

L'environnement du serveur est le suivant :

  • Le système est centos
  • docker info
WARNING: IPv4 forwarding is disabled
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

Solution

  • Modifier le fichier de configuration

vim /etc/sysctl.conf

Ajouter la configuration

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

Exécuter sysctl -ppour prendre effet

  • Redémarrez le réseau

systemctl restart network

Vérifiez à nouveau les informations du docker, l'avertissement disparaît et le réseau docker sur l'hôte revient à la normale.


Point clé, pour les serveurs cloud

Le serveur que j'utilise est Alibaba Cloud Server
Si votre cluster utilise le port par défaut 4789, alors vous risquez de rencontrer le même problème que moi.

Il y a cette phrase dans la documentation d'aide d'Alibaba Cloud :

Avant d'ajouter la surveillance UDP, veuillez faire attention aux restrictions suivantes :
Les trois ports 250, 4789 et 4790 pour la surveillance UDP sont des ports réservés au système et ne sont pas ouverts. au public pour le moment.
Détails

Dans les versions 19.03 et ultérieures, docker ajoute l'élément de configuration –data-path-port uint32 au-dessus de swarm init pour modifier le port VXLAN de docker swarm.
Le problème a été résolu avec succès après avoir modifié le port

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

Autres problèmes

Affichez le journal du docker (journalctl -u docker -n 20 -f) et trouvé :

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"

La raison en est que l'hôte ne se charge pas le module ip_vs. Redémarrez simplement Docker après avoir chargé le module ip_vs sur chaque nœud. [Apprentissage recommandé : "Tutoriel vidéo Docker"]

modprobe ip_vs
service docker restart

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Docker est-il open source ?Article suivant:Docker est-il open source ?