etcd集群异常节点重新加入集群

我们在使用etcd集群时会遇到某个节点异常无法启动,或者数据损坏的时候,这种情况需要将这个异常节点在etcd集群中剔除并重新加入该集群,具体操作如下。

首先我们先去etcd集群找到这个异常节点并删除,假设我的异常节点为etcd3,ip地址为192.168.1.79

etcdctl member list -w table
#如果使用了tls加密集群需要增加证书相关参数
#etcdctl --cacert="/etc/kubernetes/pki/etcd/ca.crt" --cert="/etc/kubernetes/pki/etcd/server.crt" --key="/etc/kubernetes/pki/etcd/server.key" member list -w table
etcdctl member remove  fc22e5c02663fd7a #删除已经异常的etcd3节点
#etcdctl --cacert="/etc/kubernetes/pki/etcd/ca.crt" --cert="/etc/kubernetes/pki/etcd/server.crt" --key="/etc/kubernetes/pki/etcd/server.key" member remove  fc22e5c02663fd7a

微信截图_20240126194330.png

上述操作完成以后,如果我们etcd3节点是系统异常重装,那么我们需要部署etcd3节点上的etcd服务,可以查看我之前的笔记:https://sulao.cn/post/967.html,注意部署完以后先不要启动etcd服务。

如果是etcd3集群节点数据受损,或者是etcd服务无法启动,那么我们需要去这个节点上停止etcd服务,并清除etcd数据,清除以后先不要启动etcd服务

systemctl stop etcd
mv /data/etcd /data/etcd_bak

上述数据和服务处理完以后,我们需要修改etcd3集群上的etcd.conf文件中的配置

initial-cluster-state: 'existing' # new改为existing

接着我们在其他两个etcd集群任意一个节点上操作添加etcd3集群到etcd成员

etcdctl member add etcd3 --peer-urls=http://192.168.1.79:2380 
#etcdctl --cacert="/etc/kubernetes/pki/etcd/ca.crt" --cert="/etc/kubernetes/pki/etcd/server.crt" --key="/etc/kubernetes/pki/etcd/server.key" member add etcd3 --peer-urls=http://192.168.1.79:2380
etcdctl member list -w table #加入集群以后接着查看集群成员状态
#etcdctl --cacert="/etc/kubernetes/pki/etcd/ca.crt" --cert="/etc/kubernetes/pki/etcd/server.crt" --key="/etc/kubernetes/pki/etcd/server.key" member list -w table

微信截图_20240126194913.png

看到上述增加的etcd集群节点还是unstarted状态,我们这个时候就可以去etcd3节点启动etcd服务了。

最后我们再查看下集群的cluster状态

etcdctl endpoint status --cluster -w table
#etcdctl --cacert="/etc/kubernetes/pki/etcd/ca.crt" --cert="/etc/kubernetes/pki/etcd/server.crt" --key="/etc/kubernetes/pki/etcd/server.key" endpoint status --cluster -w table

微信截图_20240126201509.png

可以看到集群状态正常。


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/968.html

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。