kubeadm + calico 使用的默认设置是对任何不是来自 pod_ip 的传入连接进行 NAT。
我让 calico 将服务网络发布到我的外部 LAN,并且希望服务 pod 使用实际的客户端 IP,而不是转换后的 IP。
具体来说,它增加了
-A KUBE-SERVICES ! -s 172.16.0.0/16 -d 172.20.160.251/32 -p tcp -m comment --comment "telemetry/pipeline-cdn:http cluster IP" -m tcp --dport 5000 -j KUBE-MARK-MASQ
到 iptables。
虽然这不是当前需要担心的问题,但它确实会增加未来出现短暂端口耗尽的风险,以及追踪连接和记录访问我的网络服务的客户端的普遍困难。
答案1
在 Clico Slack 的帮助下,我明白了。
简短的回答是,它正在做它需要做的事情,别管它。
雄辩的回答
https://www.asykim.com/blog/deep-dive-into-kubernetes-external-traffic-policies