今天偶然翻之前一个k8s的环境,居然发现curl 不通worker node上的pod, master上的pod是正常的。 感激翻了翻calico,发现calico node的pod是不ready的,这样:
![]()
这是一个kubeadm的环境,只有两个node,一个master一个worker,使用的CNI是calico,看了看calico-node-xxxx的情况, 发现event里面有东西:
calico/node is not ready: BIRD is not ready: BGP not established with 9.30.51.223
这就比较扯了,网络这块我不是很明白,一顿乱搜不得要领,忽然觉得不对:9.30.51.223是public ip,这public ip只有master有,而worker和master的IAAS network应该是建立在private ip上,在我的环境中应该是一个10网段的ip啊,莫非是这里选错interface了? 回忆了一下安装calico的时候也没让我选interface啊,有了线索,一顿乱搜,有了眉目:

First-found:
The first-found option enumerates all interface IP addresses and returns

在检查一个旧的Kubernetes环境时,发现无法通过curl访问worker节点上的Pod,但Master节点上的Pod正常。经过排查,发现是由于Calico-node Pod未准备好,其事件显示BGP未与特定公共IP建立连接。问题根源在于Calico可能错误地选择了接口。通过使用`ifconfig`确定私有IP所在的接口为eth0,并更新Calico DaemonSet的IP自动检测方法为`interface=eth0`,从而解决了问题。然而,由于使用了Tigera Calico Operator并通过CRD进行配置,未能在Installation资源中找到直接修改`IP_AUTODETECTION_METHOD`的地方,因此解决方案并不完美。

2184

被折叠的 条评论
为什么被折叠?



