我使用kubeadm设置了堆叠有控制平面和etcd节点的HA集群(3个主节点);但是当我使用kubeadm reset销毁一个主节点时,就无法再将主节点加入ha集群中了:
步骤1:
docker run --rm -it --net host -v /etc/kubernetes:/etc/kubernetes k8s.gcr.io/etcd:3.2.24 etcdctl --cert-file /etc/kubernetes/pki/etcd/peer.crt --key-file /etc/kubernetes/pki/etcd/peer.key --ca-file /etcd/kubernetes/pki/etcd/ca.crt --endpoints https://xxx.xxx.xxx.xxx:2379 member remove xxxxxxx
删除不良的etcd;
第二步:
docker run --rm -it --net host -v /etc/kubernetes:/etc/kubernetes k8s.gcr.io/etcd:3.2.24 etcdctl --cert-file /etc/kubernetes/pki/etcd/peer.crt --key-file /etc/kubernetes/pki/etcd/peer.key --ca-file /etcd/kubernetes/pki/etcd/ca.crt --endpoints https://xxx.xxx.xxx.xxx:2379 cluster-health
……
……
cluster is healthy
第3步:
kubeadm get cs
……
……
etcd-0 Healthy {"health":"true"}
第4步:
kubeadm将新的主服务器加入ha集群,但会出错:
etcd cluster is not healthy: context deadline exceeded
任何人都可以帮助我解决这个问题
答案 0 :(得分:1)
$ kubectl -n kube-system编辑cm kubeadm-config 然后删除apiEndpoints下面的错误节点信息, 例如:删除下面的这三行 master1-k8s: advertiseAddress:172.16.12.216 bindPort:6443
最后,您可以使用“ kubeadm join”将控制平面成功加入HA集群!!!