etcd受损节点重新加入集群

 

 

由于自己的误操作,将A节点的etcd备份数据复制到B节点的etcd备份节点目录下,还原etcd快照后,导致etcd数据受损,B节点加入之前的集群失败

理论上,只要有一个etcd节点还在,就可以重新将etcd节点加回到原来的集群

查看当前集群状态

etcdctl \
--cacert=/etc/kubernetes/cert/ca.pem \
--cert=/etc/kubernetes/cert/etcd.pem \
--key=/etc/kubernetes/cert/etcd-key.pem \
--endpoints=https://172.31.243.179:2379 \
member list
f0a399bcc03bea5f, started, k8s-02, https://172.31.243.179:2380, https://172.31.243.179:2379, false
8262a810106df86c, started, k8s-03, https://172.31.243.180:2380, https://172.31.243.180:2379, false

原本是三节点,现在一个节点加入不了集群,因为数据受损,已经没有那个节点的信息了,如果这里有出现受损节点的信息,需要member remove <集群id>,然后再执行后面的操作

删除受损etcd节点的数据

通过systemctl status etcd -l可以看到etcd的数据存储路径,参数为--data-dir,下面的路径,以自己的实际路径为准,不要纯复制黏贴

cd /opt/k8s/server/etcd
mv data{,-bak$(date +%F)}
mkdir data

数据受损节点重新加入集群

etcdctl \
--cacert=/etc/kubernetes/cert/ca.pem \
--cert=/etc/kubernetes/cert/etcd.pem \
--key=/etc/kubernetes/cert/etcd-key.pem \
--endpoints=https://172.31.243.179:2379 \
member add k8s-03 https://172.31.243.178:2380

修改etcd启动参数,重启etcd

将etcd的--initial-cluster-state启动参数,改为--initial-cluster-state=existing

systemctl daemon-reload
systemctl restart etcd
posted @   月巴左耳东  阅读(781)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示