现象:

K8S有3台master节点其中有2台挂掉 现在要恢复集群 image.png

将 10.20.201.40 10.20.201.41服务器关闭 从而模拟出节点挂掉2台 现在K8S集群已经无法使用了 命令都没用 image.png

解决:

1、 选择正常master节点,确定etcd容器已经停止 docker ps -a | grep etcd image.png

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.png 5、观察etcd容器 以及K8S状态 image.png

6、将刚才添加的参数删除 继续观察etcd状态 image.png

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