使用progrium / docker-consul的I / O超时错误

我正在尝试在AWS上使用Jeff Lindsay的 progrium/docker-consul映像在每台主机上安装Consul ,但无法让二级服务器和三级服务器join初始服务器。

我已经按照生产指令运行一个真正的consul集群,但是当我的consul2consul3节点尝试joinconsul1专用IP时,我得到一个i/o timeout错误。

实例

我在AWS上创build了三个t2.micros ,并在我的VPC中分配了以下私有IP:

 172.31.4.194 (Intended to be `consul1`, leader) 172.31.4.195 (Intended to be `consul2`) 172.31.4.193 (Intended to be `consul3`) 

启动初始领事服务器实例

我的consul1节点自动起来,等待另外两个就好了:

 sudo docker run -d -h consul1 --name consul1 -v /mnt:/data \ -p 172.31.4.194:8300:8300 \ -p 172.31.4.194:8301:8301 \ -p 172.31.4.194:8301:8301/udp \ -p 172.31.4.194:8302:8302 \ -p 172.31.4.194:8302:8302/udp \ -p 172.31.4.194:8400:8400 \ -p 172.31.4.194:8500:8500 \ -p 172.17.42.1:53:53/udp \ progrium/consul -server -advertise 172.31.4.194-bootstrap-expect 3 

试图run第二个服务器实例

但是当我尝试启动我的consul2节点时,使用以下命令:

 sudo docker run -d -h consul2 --name consul2 -v /mnt:/data \ -p 172.31.4.195:8300:8300 \ -p 172.31.4.195:8301:8301 \ -p 172.31.4.195:8301:8301/udp \ -p 172.31.4.195:8302:8302 \ -p 172.31.4.195:8302:8302/udp \ -p 172.31.4.195:8400:8400 \ -p 172.31.4.195:8500:8500 \ -p 172.17.42.1:53:53/udp \ progrium/consul -server -advertise 172.31.4.195 -join 172.31.4.194 

错误

这是我得到的错误:

 ==> WARNING: It is highly recommended to set GOMAXPROCS higher than 1 ==> Starting raft data migration... ==> Starting Consul agent... ==> Starting Consul agent RPC... ==> Joining cluster... ==> dial tcp 172.31.4.194:8301: i/o timeout 

任何想法是什么可能造成这个? 我已经重新尝试了九次,但仍然没有运气。 它促使我对networking进行了一些更多的学习(这是一个广泛的,深入的,引人入胜的课题),但我无法弄清楚在我的configuration中是否存在问题,或者这是一个实际的错误。

在此先感谢您的帮助。

问题解决了!

事实certificate,我已经忘记打开Consul需要在pipe理访问实例的安全组中使用的端口。

打开了83008500 ,都安装得很好。