k8s Pod 1 获取错误的 pod 2 的 ip 地址

k8s Pod 1 get wrong pod 2's ip address

我用 kubernetes 二进制文件安装了 k8s master,集群运行良好。

但是我遇到了一个奇怪的问题。

首先,我运行命令 python -m SimpleHTTPServer 9999 在 pod2 中。

然后我在 pod1 中发出请求 curl http://<pod2 ip>:9999

pod2 中的结果显示为

Serving HTTP on 0.0.0.0 port 9999 ...
10.244.0.1 - - [01/Apr/2021 14:40:34] "GET / HTTP/1.1" 200 -

但是pod1的实际ip是10.244.0.47

而且根据我查到的,10.244.0.1是cni0的ip地址。

我不知道是什么导致了这个问题。

谁能帮帮我吗?

终于找到造成这个结果的原因了

我使用的容器是docker,它将默认创建iptable 规则。结果,来自 docker 的流量将被更改,然后将在 ip 上完成 snat。

"iptables": false 添加到 /etc/docker/daemon。json 将解决此问题。