1

我正在尝试做这个教程--> tutorialConsul

当我运行时:

   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

会是什么呢?

非常感谢。

4

1 回答 1

2

两个不同的节点不能具有相同的地址。这会使 Consul 感到困惑,因为 Consul 将使用此地址连接到节点。

使用bind_addr配置选项确保 consul 在每台机器上使用正确的接口和 IP 地址 consul 不会自动选择正确的地址。默认情况下,Consul 会选择它找到的“第一个”私有地址,这在您的设置中可能不起作用。

您正在运行的版本似乎很旧(0.3.0)。当前版本为 0.6.0。

于 2015-12-15T07:33:20.123 回答