使用progrium / docker-consul的I / O超时错误
我正在尝试在AWS上使用Jeff Lindsay的 progrium/docker-consul
映像在每台主机上安装Consul
,但无法让二级服务器和三级服务器join初始服务器。
我已经按照生产指令运行一个真正的consul集群,但是当我的consul2
和consul3
节点尝试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理访问实例的安全组中使用的端口。
打开了8300
和8500
,都安装得很好。