k8s Pod 1 获取错误的 Pod 2 的 IP 地址

时间:2021-04-01 09:42:17

标签: kubernetes ip kube-proxy

我使用 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地址。

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

谁能帮我一把?

1 个答案:

答案 0 :(得分:0)

我终于找到了导致这个结果的原因。

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

"iptables": false 添加到 /etc/docker/daemon.json 可以解决这个问题。