Tengo dos servidores en Docker Swarm, pero cuando necesito agregar un tercer servidor, obtengo el resultado:
Respuesta de error del demonio: error rpc: código = 14 desc = grpc: la conexión no está disponible
Todos los servidores en una red.
¿Cual podría ser el problema?
Yo diría que posiblemente esté relacionado con el cortafuegos. Asegúrese de que sus puertos estén configurados correctamente en el tercer cuadro. De los documentos de Docker :
Abrir protocolos y puertos entre los hosts Los siguientes puertos deben estar disponibles. En algunos sistemas, estos puertos están abiertos de forma predeterminada.
Puerto TCP 2377 para comunicaciones de administración de clúster Puerto TCP y UDP 7946 para comunicación entre nodos Puerto UDP 4789 para tráfico de red superpuesto
Del tutorial oficial de enjambre de Docker
Los siguientes puertos deben estar abiertos en sus hosts docker.
TCP port 2377 for cluster management communications TCP and UDP port 7946 for communication among nodes UDP port 4789 for overlay network trafficPara habilitar estos puertos, ejecute el siguiente comando en todos sus hosts docker. siga amablemente el artículo de digitalocen para conocer los pasos completos.
firewall-cmd --add-port=2376/tcp --permanent firewall-cmd --add-port=2377/tcp --permanent firewall-cmd --add-port=7946/tcp --permanent firewall-cmd --add-port=7946/udp --permanent firewall-cmd --add-port=4789/udp --permanentComo han señalado otros, los puertos cerrados podrían ser una de las razones. Pero también he encontrado un par de más.
La versión reciente de Docker sufre problemas masivos de proxy:
De acuerdo con este comentario , es "probable" que la solución llegue a la versión 17.11 de Docker y se "considera" que se incluirá en un lanzamiento de parche para 17.09 .
Todos mis puertos están abiertos y el truco NO_PROXY descrito en los enlaces antes mencionados no funcionó.
Probé todas las versiones de Docker desde 17.05 hasta 17.11.0-ce-rc3, build 5b4af4f sin éxito, lo que me llevó a sospechar que el culpable podría ser una actualización reciente de Vagrant (estoy usando 2.0.1 ) y/o VirtualBox (usando 5.1.30 ). Actualizar cualquiera de estos dos generalmente conduce a todo tipo de problemas aleatorios. Pero, en lugar de degradar a estos tipos, traté de actualizar las cajas Vagrant que ejecuto.
En mi configuración de dos máquinas, cambié el cuadro del primer nodo a fso/artful64-desktop y el cuadro del segundo nodo a fso/artful64 (ambos versión 2017-11-01 ). Para mi sorpresa, esto hizo que Docker Swarm funcionara en la versión 17.10.0-ce y 17.11.0-ce-rc3, build 5b4af4f . Tenga en cuenta que la red privada está rota en Vagrant 2.0.1 si desea usar Ubuntu 17.10 boxes lol (se puede arreglar manualmente ).