在使用的过程中,发现跨node的pod无法通信,于是观察calico的状态
kubectl get pods -0 wide -n kube-system
发现两个节点,不是ready状态
于是查询calico节点的描述,发现报错信息如下
kubectl describe pod calico-node-f7dc4 -n kube-system
进入到node节点,查看网桥信息
kubectl exec -ti calico-node-f7dc4 -n kube-system -- bash
cat /etc/calico/confd/config/bird.cfg
显然,这个ip不对正确ip
可以判断是calico节点的BGP网卡设备识别错误导致。
解决方式,让calico识别ens.开头的网卡,作为网桥。calico默认采用first-found方法,选择第一个接口的第一个有效IP地址(排除本地网桥接口)
kubectl set env daemonset.apps/calico-node -n kube-system IP_AUTODETECTION_METHOD=interface=ens.*
kubectl get pods -n kube-system
至此解决