我使用 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地址。
我不知道是什么导致了这个问题。
谁能帮我一把?
答案 0 :(得分:0)
我终于找到了导致这个结果的原因。
我使用的容器是 docker,它会默认创建 iptable 规则。结果,来自docker的流量将发生变化,然后snat将在ip上完成。
将 "iptables": false
添加到 /etc/docker/daemon.json 可以解决这个问题。