我使用 kubeadm 设置了一个堆叠控制平面和 etcd 节点的 HA 集群(3 个主节点);但是当我使用 kubeadm 重置来摧毁一个主节点时,不能再将一个主节点加入 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
去除坏的蚀刻;
步骤2:
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
任何人都可以帮助我解决这个问题
$kubectl -n kube-system edit cm kubeadm-config然后删除 apiEndpoint 下面的坏节点信息,例如:删除以下三行 大师1-K8S: 广告地址: 172.16.12.216 绑定端口:6443
最后,您可以使用"kubeadm join"将控制平面成功连接到 HA 集群!!