集群原有6个节点,3个master,3 个node

问题:一台master节点物理机出现故障,无法开机

现象:只有2个节点的etcd集群会频繁重启,导致k8s集群一会能连,一会不能连

处理

1、将故障master节点从集群中删除

kubectl delete node xxx

把故障master信息从etcd中删除

etcd的命令可能需要单独下载,我这里下载的是etcd-v3.3.4-linux-adm64.tar.gz

tar zxf etcd-v3.3.4-linux-adm64.tar.gz

cd etcd-v3.3.4-linux-adm64

cp etcdctl /usr/local/sbin

查看etcd成员列表 证书根据自己的环境进行更换

ETCDCTL_API=3 etcdctl --endpoints 127.0.0.1:2379 --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/server.crt --key /etc/kubernetes/pki/etcd/server.key member list

删除etcd信息

ETCDCTL_API=3 etcdctl --endpoints 127.0.0.1:2379 --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/server.crt --key /etc/kubernetes/pki/etcd/server.key member remove  xxx

2、将一台nodes节点转换为master节点

2.1  将nodes节点改为不可调度状态

kubectl cordon xxx

2.2  驱逐nodes上的pod

kubectl drain xxx  

2.3  重置此节点

kubectl reset

3、把节点加入集群,当做master节点

3.1 查看token

kubectl token create --print-join-command

3.2 将其它master节点的上证书拷贝到当前节点

3.3  执行3.1查出的命令加入集群  

 后面添加参数  --control-plane

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐