You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

3节点Kubernetes HA集群丢失控制平面节点后的恢复方法咨询

恢复丢失单Control Plane节点的Kubernetes HA集群

1. 切换到存活Control Plane节点获取集群访问权限

  • 登录任意一台存活的Control Plane服务器,先验证本地集群访问:
    kubectl get nodes
    
  • 若本地kubectl能正常执行,将该节点的/etc/kubernetes/admin.conf复制到本地替换~/.kube/config;若本地无法访问,直接在存活节点上操作,或重新生成kubeconfig:
    kubectl config set-cluster kubernetes --server=https://<存活节点IP>:6443 --certificate-authority=/etc/kubernetes/pki/ca.crt
    kubectl config set-credentials admin --client-certificate=/etc/kubernetes/pki/admin.crt --client-key=/etc/kubernetes/pki/admin.key
    kubectl config set-context kubernetes --cluster=kubernetes --user=admin
    kubectl config use-context kubernetes
    
    替换<存活节点IP>为实际存活节点的IP,执行后再次用kubectl get nodes确认访问正常。

2. 清理Etcd集群中的失效节点

原3节点Etcd集群丢失一个节点后,需移除失效成员以保证集群可用性:

  • 在存活节点上查看当前Etcd成员列表:
    ETCDCTL_API=3 etcdctl member list --endpoints=https://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
    
  • 找到失效节点的ID(输出中类似abcdef123456的字符串),执行移除命令:
    ETCDCTL_API=3 etcdctl member remove <失效节点ID> --endpoints=https://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
    
  • 修改存活节点上的Etcd静态Pod配置/etc/kubernetes/manifests/etcd.yaml,更新--initial-cluster参数,删除失效节点的地址,仅保留两个存活节点的Etcd集群地址(格式为https://<节点IP>:2380)。
  • 等待Etcd Pod自动重启后,验证集群健康状态:
    ETCDCTL_API=3 etcdctl endpoint health --endpoints=https://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
    

3. 更新Control Plane组件配置

  • 检查/etc/kubernetes/manifests/kube-apiserver.yaml,确保--etcd-servers参数仅包含存活的Etcd节点地址(格式为https://<节点IP>:2379),修改后保存,kube-apiserver会自动重启。
  • 若集群使用了负载均衡器转发Control Plane流量,需更新负载均衡器的后端节点列表,移除失效节点,保证流量仅转发到存活的两个Control Plane节点。
  • 验证kube-controller-manager、kube-scheduler组件运行正常,可通过kubectl get pods -n kube-system查看状态,若有异常,检查其配置文件中Etcd或Apiserver的地址是否正确。

4. (可选)添加新Control Plane节点恢复3节点HA

若需恢复3节点高可用架构,可新增一台服务器作为Control Plane节点:

  • 在新节点上安装与现有集群匹配的kubeadm、kubelet、kubectl及容器运行时,配置一致的网络环境。
  • 在存活的Control Plane节点上生成加入命令:
    kubeadm token create --print-join-command --control-plane
    
  • 执行kubeadm init phase upload-certs --upload-certs获取证书密钥,将加入命令补充--certificate-key <获取的密钥>后,在新节点上执行。
  • 新节点加入后,更新Etcd集群成员,将新节点加入,并同步所有Control Plane组件的Etcd地址配置,恢复3节点Etcd集群。

内容的提问来源于stack exchange,提问作者user3184767

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 19:22:52