0

我们在防火墙后面的私有网络中运行K8S集群,使用讨厌的反向 NAT 规则阻止我们的主机通过公共 IP 连接到自己。

问题

从 pod 内部,我需要连接到203.X.X.X无法解析为公共 IP 的服务。但是我可以通过私有 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的解决方案不起作用,因为我们:

  • 事先不知道主机名
  • 想要将所有到已知公共(无法访问)IP 的流量重新路由到相应的私有 IP

PS:我们使用 calico 作为网络插件

4

0 回答 0