calico网络故障排查(calico/node is not ready: BIRD is not ready)

一、问题发现
1.执行kubectl get pod -o wide -n kube-system,发现有一个节点的calico-node没有出入READY状态,如下:


calico pod

2.执行kubectl describe pod calico-node-xvj55 -n kube-system,发现有如下报错:


error info

3.执行kubectl exec -ti calico-node-xvj55 -n kube-system -- bash,进入calico-node,打开bird配置文件,发现router id为10.244.3.1,此IP是cni0网桥地址,正常应该是eth0网卡地址:10.1.209.160,如下:


bird config

flannel&cni0

4.在master执行calicoctl node status


calico 状态

综上所述,基本可以确定是节点的calico的BGP网卡设备识别错误导致。

二、解决
1.执行如下命令

ifconfig cni0 down
ip link delete cni0
ifconfig flannel.1 down
ip link delete flannel.1
rm -rf /var/lib/cni/
rm -f /etc/cni/net.d/*

2.修改calico.yaml

- name: IP_AUTODETECTION_METHOD
  value: "interface=ens*"

你可能感兴趣的:(calico网络故障排查(calico/node is not ready: BIRD is not ready))