1.执行kubectl get pod -o wide -n kube-system,发现有一个节点的calico-node没有出入READY状态,如下:
2.执行kubectl describe pod calico-node-xvj55 -n kube-system,发现有如下报错:
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,如下:
4.在master执行calicoctl node status
综上所述,基本可以确定是节点的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(指定Calico匹配网桥规则)介绍完成。