Etcd挂 恢复集群

现象:

K8S有3台master节点其中有2台挂掉 现在要恢复集群
image
将 10.20.201.40 10.20.201.41服务器关闭 从而模拟出节点挂掉2台
现在K8S集群已经无法使用了 命令都没用
image
解决:
1、选择正常master节点,确定etcd容器已经停止
docker ps -a | grep etcd
image
2、备份etcd文件
cd /etc/kubernetes/ && mkdir backup && cp manifests/etcd.yaml backup/
3. 备份etcd数据目录
cd /etc/kubernetes/backup tar cvfz etcd.tar.gz /var/lib/etcd/
4. 修改etcd参数
cd /etc/kubernetes/manifests && vim etcd.yaml
添加参数 - --force-new-cluster
强制创建一个新的单成员集群。它提交配置更改,强制删除集群中的所有现有成员并添加自己,但在正常情况下强烈建议不要这样做
image
4.1 如果服务etcd apiserver容器还没起来的话
mv /etc/kubernetes/manifests/etcd.yaml /home

以下容器会自动删除的掉 如果没有删除请重启kubelet 删除以下容器
image

4.2 将/home/etcd 还原到/etc/kubernetes/manifests/etcd.yaml 目录即可
5、观察etcd容器 以及K8S状态
image
6、将刚才添加的参数删除 继续观察etcd状态
image

7、将两台master 剔除集群即可

sealer  delete  --masters   10.20.201.40
sealer  delete  --masters   10.20.201.41

8、将有问题两台服务器重装系统之后 再次加入集群

sealer  join --masters   10.20.201.40
sealer  join --masters   10.20.201.41
posted @ 2022-11-08 10:16  小星奕的快乐  阅读(438)  评论(0)    收藏  举报