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格式