Consul 无法找到集群领导者

Consul is unable to find the cluster leader

我用过这个:

https://github.com/Mashape/docker-kong/tree/master/compose

通过 docker 编写

到 运行 本地 Kong Docker。一旦我 运行 docker-compose up 我在我的日志中不断收到这个错误:

consul_1 | 2017/05/29 08:44:05 [INFO] raft: Node at 172.17.0.4:8300 [Candidate] entering Candidate state
consul_1 | 2017/05/29 08:44:05 [ERR] raft: Failed to make RequestVote RPC to 172.17.0.3:8300: dial tcp 172.17.0.3:8300: connection refused
consul_1 | 2017/05/29 08:44:05 [ERR] raft: Failed to make RequestVote RPC to 172.17.0.2:8300: dial tcp 172.17.0.2:8300: connection refused
consul_1 | 2017/05/29 08:44:06 [ERR] agent: failed to sync changes: No cluster leader
consul_1 | 2017/05/29 08:44:06 [ERR] agent: failed to sync changes: No cluster leader
consul_1 | 2017/05/29 08:44:06 [ERR] agent: failed to sync changes: No cluster leader

我在 Google 上搜索过,但没有找到任何具体答案。

这是因为 consul 'hardcode' 其初始分配的本地 IP (172.17....),然后当您再次 运行 docker-compose 时,它​​需要一个新 IP , 所以它让我们的朋友感到困惑 consul.

因此,作为简单的解决方法,您可以 docker-compose rm consul 并重新开始 docker-compose up。但请记住,您可能会丢失 consul 的数据(即 Key/Value 存储,但我不知道您的应用程序是否正在使用它)

作为更好的解决方法(它对我有用),添加 -client=0.0.0.0 告诉 consul 硬编码一些更好的东西。

在docker-compose.yml:

consul:
  image: progrium/consul:latest
  command: -server -bootstrap -ui-dir /ui -client=0.0.0.0