K8s集群中,Worker 节点误执行了 kubeadm init

发布于:2025-02-11 ⋅ 阅读:(63) ⋅ 点赞:(0)

K8s集群中,Worker 节点误执行了 kubeadm init


Worker 节点误执行了 kubeadm init,需要进行清理和重新加入集群。

注意事项

  • 确保网络插件配置与 --pod-network-cidr 参数匹配,否则会导致 Worker 节点无法加入。
  • 如果 Worker 节点误操作后仍报错,可以尝试重启服务:sudo systemctl restart kubelet
  • 在执行清理操作前,确保当前节点没有任何重要的应用或数据,以免误删。
  • 按照步骤操作后,误执行初始化的 Worker 节点应该可以恢复并正常加入集群。

以下是解决方案的详细步骤:

  1. 清理错误配置
    在误操作的 Worker 节点上执行以下命令清理集群相关的残留数据:
sudo kubeadm reset -f

作用:
清理初始化过程中生成的配置文件、证书和数据目录。
会移除 /etc/kubernetes 下的所有内容。
注意:此命令不会删除网络插件相关的配置文件,如果需要彻底清理,请参考下面的步骤。

  1. 清理容器运行时相关数据
  • 如果使用的是 containerd,可以清理容器相关的内容:
sudo systemctl stop containerd
sudo rm -rf /var/lib/containerd/*
sudo rm -rf /data/containerd/*
sudo systemctl start containerd
  • 对于其他容器运行时(如 Docker),可以参考以下命令:
sudo systemctl stop docker
sudo rm -rf /var/lib/docker/*
sudo systemctl start docker
  1. 移除 CNI 网络配置(可选)
    如果节点已经部署了网络插件(例如 Flannel 或 Calico),可能会遗留网络配置,需手动清理。
sudo rm -rf /etc/cni/net.d/*
sudo rm -rf /var/lib/cni/
sudo rm -rf /var/run/calico/
  1. 确保网络和服务正常(可选)
# 检查是否有多余的 IP 地址或规则残留:
ip addr show
iptables -L -n -v

# 清理可能遗留的网络规则:
sudo iptables -F
sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -X
sudo ip link delete cni0
sudo ip link delete flannel.1
  1. 将 Worker 节点重新加入集群
    重新加入集群需要从 Master 节点获取 kubeadm join 命令。可以在 Master 节点执行以下命令获取新的 kubeadm join 命令:
sudo kubeadm token create --print-join-command

# 输出类似如下:
kubeadm join 172.19.0.81:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# 在 Worker 节点上执行上述命令即可重新加入集群。
  1. 验证节点状态
    在 Master 节点上检查 Worker 节点状态:
kubectl get nodes
如果节点状态为 Ready,说明已成功加入集群。

如果状态为 NotReady,检查网络插件是否已部署且正常运行:
kubectl get pods -n kube-system

网站公告

今日签到

点亮在社区的每一天
去签到