我有:
当我点击开始时,我看到以下错误:
2016/04/21 19:31:31 [ERR]代理:无法同步远程状态:rpc错误:没有集群领导者 2016/04/21 19:31:44 [ERR]代理:坐标更新错误:rpc错误:没有集群领导者
如何从此状态恢复?
答案 0 :(得分:5)
您是否看过Consul文档:https://www.consul.io/docs/guides/outage.html?
看起来你执行了一次不合适的停止,现在需要通过删除那里的所有条目来清理你的raft/peers.json
文件以执行停机恢复。有关详细信息,请参阅上面的链接。
答案 1 :(得分:0)
从领事0.7开始,工作原理与Keyan P的答案有所不同。 raft/peers.json
(在Consul数据目录中)已成为手动恢复机制。除非您创建它,否则它不存在,然后在Consul启动时将其加载并从文件系统中删除该文件,以便将来启动时不再读取它。 raft/peers.info
中有说明。请注意,如果您删除raft/peers.info
,它将不会读取raft/peers.json
,但无论如何都会删除它,并会重新创建raft/peers.info
。日志将指示何时分别读取和删除文件。
假设您已经尝试过bootstrap
或bootstrap_expect
设置,那么该文件可能会有所帮助。 Keyan P的答案中的Outage Recovery guide是一个有用的链接。您在数据目录中创建raft/peers.json
并启动Consul,日志应指示它正在读取/删除文件,然后应显示诸如“获得群集领导权”之类的信息。文件内容为:
[ { "id": "<node-id>", "address": "<node-ip>:8300", "non_voter": false } ]
在数据目录的<node-id>
文件中可以找到node-id
。
答案 2 :(得分:0)
如果您的筏版本大于2:
[
{
"id": "e3a30829-9849-bad7-32bc-11be85a49200",
"address": "10.88.0.59:8300",
"non_voter": false
},
{
"id": "326d7d5c-1c78-7d38-a306-e65988d5e9a3",
"address": "10.88.0.45:8300",
"non_voter": false
},
{
"id": "a8d60750-4b33-99d7-1185-b3c6d7458d4f",
"address": "10.233.103.119",
"non_voter": false
}
]
答案 3 :(得分:0)
在我的例子中,我在 k8s 集群中有 2 个工作节点,在添加另一个节点后,领事服务器可以选择一个主节点,一切都已启动并运行。