Consul重启后出现 error while renaming node id

最近consul节点被意外终止后,重新运行.发现该节点下的服务均无法注册上去.

看日志,发现类似的错误

1
rpc error making call: failed inserting node: Error while renaming Node ID: "xxxxx": Node name node2 is reserved by node xxxxxx-xxxxx-384e-0bf4-xxxxx with name node2

日志里两个node id是不一样的. 估计是重启后,生成了新的node id.这和挂掉之前,存在consul server中的 node2的id不一致,导致冲突.

解决

上面例子中,我是在节点2执行了一个 consul leave的动作就好了.

1
docker exec consul consul leave

如果不行,就 离开集群 -> 重启consul -> 加入集群

另外看到其它应该可行的方法,但是我没有尝试.

以上问题,主要是因为生成了新的node id 导致的node id冲突. 那不让它生成不就好了.

启动时加入-disable-host-node-id

或者指定node id -node-id=$(uuidgen | awk ‘{print tolower($0)}‘) node id必须是guid格式

参考资料

关注公众号 尹安灿