1.具体报错(使用kubectl describe查看pod,pod状态为0/1)
Warning Unhealthy 28s kubelet Readiness probe failed: 2023-01-16 03:43:54.029 [INFO][256] confd/health.go 180: Number of node(s) with BGP peering established = 0
calico/node is not ready: BIRD is not ready: BGP not established with 10.206.0.10,10.206.0.4
2.原因
我这边的原因大概是在k8s节点使用docker安装了其他容器,而且还创建了一个网桥,我的k8s节点是采用containerd作为运行时
docker network create -d bridge kongnet
猜想应该是创建了其他网桥,导致calico那边匹配网卡报错,然后这个节点的pod网络一直不同(其他节点都是好的)
后面将新建的容器和网桥都删除了,然后就好了,通信正常。
所以在生产环境中,最好不要在k8s节点创建其他服务,特别是使用docker,它会修改你的iptables规则和一些其他东西,然后就会出现奇奇怪怪的问题