从领事"无集群领导者"状态恢复

dee*_*een 7 mesos consul

我有:

  • 一个mesos-master,我在其中配置了一个consul服务器;
  • 我在其中配置consul客户端的一个mesos-slave;
  • 一个用于领事的引导服务器.

当我点击开始时,我看到以下错误:

2016/04/21 19:31:31 [错误]代理:无法同步远程状态:rpc错误:无集群领导2016/04/21 19:31:44 [错误]代理:坐标更新错误:rpc错误:否集群领导者

我如何从这种状态恢复?

小智 6

您是否查看过Consul文档:https : //www.consul.io/docs/guides/outage.html

看来您执行了不正常的停止,现在需要raft/peers.json通过删除其中的所有条目来清除文件以执行中断恢复。有关更多详细信息,请参见上面的链接。

  • 看来现在这是个死链接...我认为新版本是https://learn.hashicorp.com/consul/day-2-operations/outage? (2认同)

Mik*_*tra 6

从 Consul 0.7 开始,事情与 Keyan P 的回答有所不同。raft/peers.json(在 Consul 数据目录中)已成为手动恢复机制。除非您创建它,否则它不存在,然后当 Consul 启动时,它会加载文件并将其从文件系统中删除,以便在以后启动时不会被读取。中有说明raft/peers.info。请注意,如果您删除raft/peers.info它,它将不会读取,raft/peers.json但无论如何它都会删除它,并且会重新创建raft/peers.info. 日志将指示它何时分别读取和删除文件。

假设您已经尝试过bootstrapbootstrap_expect设置,该文件可能会有所帮助。Keyan P 的回答中的中断恢复指南是一个有用的链接。您raft/peers.json在数据目录中创建并启动 Consul,日志应该表明它正在读取/删除文件,然后它应该显示“获得集群领导权”之类的内容。文件内容为:

[ { "id": "<node-id>", "address": "<node-ip>:8300", "non_voter": false } ]
Run Code Online (Sandbox Code Playgroud)

在哪里<node-id>可以node-id在数据目录的文件中找到。