Docker Community Forums

Share and learn in the Docker community.

Successfully installed UCP, but can't add a node


(Mothbitten) #1

I successfully installed UCP and tried to follow the guidance to add a node, this is what happens:
docker swarm join --token token redacted ip redacted:2377
Error response from daemon: rpc error: code = 14 desc = grpc: the connection is unavailable

Sure enough, when I telnet to port 2377 it isn’t open. Am I supposed to do something different?


(Andrew Weiss) #2

Hey @mothbitten. Couple of reasons why you might be having this issue. First, check to ensure that the ports listed in the UCP system requirements are opened between the manager and worker nodes in your cluster. These are listed here -> https://docs.docker.com/datacenter/ucp/2.2/guides/admin/install/system-requirements/#ports-used. This includes both the local firewall on the OS’s (e.g. iptables) and any other intermediary firewalls.

Furthermore, if any of your hosts are communicating from behind an internal proxy, you’ll need to configure each of the Docker EE Engines on your nodes to point to the proxy server. This is outlined here -> https://docs.docker.com/engine/admin/systemd/#httphttps-proxy.


(Mothbitten) #3

Thanks for your response. There is no proxy between the systems.

What is confusing is that the UCP instructions here: https://docs.docker.com/datacenter/ucp/2.2/reference/cli/install/#usage
…mention nothing about port 2377. So either the instructions are wrong or the UCP gives a wrong port to use when adding a new node.

I added 2377 to iptables but that did not change anything since a docker ps does not show that port.

Or maybe I am missing something?


(Fusionx86) #4

@mothbitten Did you ever find a solution for this? I too went through the EE setup and it seems to be working, but I cannot connect to port 2377 from other hosts. I can connect to localhost:2377 and ip:2377 from the 1st management server itself though. I don’t use a proxy and also don’t have firewall rules blocking it. Netstat shows:

netstat -ntap | grep 2377
tcp6 0 0 :::2377 :::* LISTEN 30005/dockerd

Swarm is configured to listen on the correct IP and port:

docker swarm join-token manager
docker swarm join --token ‘token’ 1.1.1.1:2377

Connect from 1st management node:

telnet localhost 2377
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.

telnet 1.1.1.1 2377
Trying 1.1.1.1…
Connected to 1.1.1.1.
Escape character is ‘^]’.

Connecting from another node:

telnet 1.1.1.1 2377
Trying 1.1.1.1…
telnet: Unable to connect to remote host: Connection refused

I can connect from remote servers to other ports on the management node though. Seems like something is missing to configure dockerd to listen on 2377 from any source.


(Fusionx86) #5

Well, it appears to be something with virtualbox and/or vagrant in my case. I brought up a new VM of the same distro and version on vmware without vagrant and it works fine. I’ve run into strange network behavior with vagrant before.