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
分类:
Kubernetes
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理