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

Kubernetes如何强制删除不可达节点或清理集群重新部署?

问题根因

你执行kubectl命令返回的dial tcp 10.21.30.165:6443: connect:network is unreachable报错,核心原因是当前使用的kubeconfig文件中记录的APIServer地址是已经被删除的旧控制节点IP,kubectl无法连通集群控制面,自然无法执行节点删除操作。

方案一:修复集群连接后强制删除残留不可达节点

适用于需要保留现有集群,仅清理无效旧节点后添加新节点的场景:

  • 第一步:修复kubectl连接配置
    登录到集群中现存的正常运行的控制平面节点,将该节点上的/etc/kubernetes/admin.conf文件拷贝到你执行kubectl操作的机器上,覆盖~/.kube/config文件。执行kubectl get nodes验证,能正常返回节点列表即配置生效。
  • 第二步:逐台删除无效旧节点
    对每台已删除的旧节点,依次执行以下命令:
    1. 标记节点为不可调度,避免后续新Pod调度到无效节点:
      kubectl cordon <旧节点名称,例如ks01>
    2. 驱逐节点上残留的运行中Pod,节点已离线时这步会报错,直接跳过即可:
      kubectl drain <旧节点名称> --delete-emptydir-data --force --ignore-daemonsets
    3. 强制删除集群中存储的节点对象,跳过优雅等待周期:
      kubectl delete node <旧节点名称> --force --grace-period=0
      所有旧节点删除完成后,即可正常执行kubeadm join命令添加新节点。
方案二:全量清理集群环境重新部署

适用于旧集群已经完全损坏,不需要保留任何现有数据,想要从头重新部署集群的场景。注意:以下操作会清除所有K8s相关数据,执行前确认无需要保留的业务内容。
对所有曾经部署过K8s组件的服务器(包含原控制节点、原工作节点),逐台执行以下清理操作:

  1. 重置kubeadm创建的集群组件:
    kubeadm reset -f
  2. 清理残留的网络规则:
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
# 集群使用ipvs网络模式时额外执行下面这条命令
ipvsadm -C
  1. 删除残留的配置、数据目录:
rm -rf /etc/cni/net.d/
rm -rf /etc/kubernetes/
rm -rf /var/lib/etcd/
rm -rf /var/lib/kubelet/
rm -rf /var/lib/cni/
rm -rf ~/.kube/

所有节点清理完成后,即可按照标准流程重新初始化控制平面、加入新节点,不会再出现旧节点相关报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 12:57:19