我正在尝试做这个教程-->教程Consul
当我运行时:
ikerlan@ikerlan-docker:~$ consul members
Node Address Status Type Build Protocol
ikerlan-docker 172.16.8.37:8301 alive client 0.3.0 2
172.16.8.191 10.0.2.15:8301 alive server 0.3.0 2
172.16.8.192 10.0.2.15:8301 alive server 0.3.0 2
172.16.8.193 10.0.2.15:8301 alive server 0.3.0 2
ikerlan@ikerlan-docker:~$ consul members
Node Address Status Type Build Protocol
ikerlan-docker 172.16.8.37:8301 alive client 0.3.0 2
172.16.8.191 10.0.2.15:8301 failed server 0.3.0 2
172.16.8.192 10.0.2.15:8301 alive server 0.3.0 2
172.16.8.193 10.0.2.15:8301 failed server 0.3.0 2
ikerlan@ikerlan-docker:~$ consul members
Node Address Status Type Build Protocol
ikerlan-docker 172.16.8.37:8301 alive client 0.3.0 2
172.16.8.191 10.0.2.15:8301 failed server 0.3.0 2
172.16.8.192 10.0.2.15:8301 alive server 0.3.0 2
172.16.8.193 10.0.2.15:8301 alive server 0.3.0 2
我可以看到成员们还活着,但如果我再次参选,其中一些成员失败了,然后其他成员又活着又失败了。。
我认为领导者,罢免了成员,所以他们失败了,他们试图联系,但后来他们被罢免了。
我正在使用virtualbox机器,我看到consul使用所有具有相同地址的机器,但我已将consul配置为使用eth1接口,即出现在Node(name)中的IP
可能是什么?
非常感谢。
两个不同的节点不能具有相同的地址。这将混淆Consul,因为Consul将使用此地址连接到节点。
使用bind_addr
配置选项可确保consul使用正确的接口,并且每台机器上的IP地址consul不会自动选择正确的地址。默认情况下,Consul会选择它找到的"第一个"私人地址,这可能在您的设置中不起作用。
你运行的版本似乎很旧(0.3.0)。当前版本是0.6.0。