从Consul 0.7开始,与Keyan P的答案不同。 raft/peers.json (在Consul data dir中)已经成为一种手动恢复机制。除非您创建它,否则它不存在,然后当Consul启动时,它会加载文件并将其从文件系统中删除,以便将来启动时不会读取它。有说明 raft/peers.info 。请注意,如果删除 raft/peers.info 它不会读 raft/peers.json 但无论如何它都会删除它,它会重新创建 raft/peers.info 。日志将指示何时单独读取和删除文件。
raft/peers.json
raft/peers.info
假设你已经尝试过了 bootstrap 要么 bootstrap_expect 设置,该文件可能会有所帮助。该 停电恢复指南 在Keyan P的答案是一个有用的链接。你创造 raft/peers.json 在数据目录和启动Consul,日志应该表明它正在读取/删除文件然后它应该说“收集集群领导”之类的东西。文件内容是:
bootstrap
bootstrap_expect
[ { "id": "<node-id>", "address": "<node-ip>:8300", "non_voter": false } ]
哪里 <node-id> 可以在。中找到 node-id 文件在数据目录中。
<node-id>
node-id
你看过领事文档了吗: https://www.consul.io/docs/guides/outage.html ?
看起来你已经进行了一次不合时宜的停留,现在需要清理你的 raft/peers.json 通过删除那里的所有条目来执行停机恢复。有关详细信息,请参阅上面的链接。