我们在防火墙后面的专用网络中运行 K8S 群集,该群集具有令人讨厌的反向NAT规则,这些规则阻止我们的主机通过公共IP连接到自身。
问题
我需要从Pod内部连接到无法解析为公共IP 203.X.X.X
的服务。但是,我可以通过专用IP 192.Y.Y.Y
我可以在运行pod的节点上设置 iptables 规则,如下所示:
iptables -A OUTPUT -t nat -p tcp -d 203.X.X.X --dport 80 -j DNAT --to-destination 192.Y.Y.Y:80
然后,我可以从节点成功连接到服务,但不能从此节点上运行的pod成功连接。
使用 hostAliases 的解决方案无法正常工作,
PS: 我们使用calico作为网络插件