如何恢复堆叠控制平面和 etcd 节点的 HA 集群



我使用 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 集群!!

最新更新