0x0034's Blog.

K8s node节点无法启动Pod 问题解决

字数统计: 240阅读时长: 1 min
2022/03/25

问题描述

问题出现的原因是,Master崩了,然后没有办法只能重装集群, 但是节点都没有重装系统, 还存在一定的残留. 报错信息如下所示.

1
network: failed to set bridge addr: "cni0" already has an IP address different from 10.244.3.1/24

解决办法

步骤如下所示.

重置kubeadm

1
kubeadm reset -f

停止kubelet 和 docker

1
systemctl stop kubelet docker

清空CNI 和 kubelet 文件

1
2
3
rm -rf /var/lib/cni/
rm -rf /var/lib/kubelet/*
rm -rf /etc/cni/

关闭CNI,flannel,docker网桥

1
2
3
4
5
ifconfig cni0 down
ifconfig flannel.1 down
ifconfig docker0 down
ip link delete cni0
ip link delete flannel.1

重启Docker和kubelet

1
2
systemctl start docker
systemctl start kubelet

Node重新加入集群

master执行如下所示命令输出:

1
kubeadm token create --print-join-command

检查节点加入

1
kubectl get nodes

并且重新尝试调度Pod到此节点.

CATALOG
  1. 1. 问题描述
  2. 2. 解决办法
    1. 2.1. 重置kubeadm
    2. 2.2. 停止kubelet 和 docker
    3. 2.3. 清空CNI 和 kubelet 文件
    4. 2.4. 关闭CNI,flannel,docker网桥
    5. 2.5. 重启Docker和kubelet
    6. 2.6. Node重新加入集群
  3. 3. 检查节点加入