我在GCP中有2个集群,一个在欧洲,另一个在美国。 我创建了一个VPC网络,以互相对等子网,并配置了相对防火墙规则。 现在,我可以在Pod之间创建呼叫,但是当尝试将它们从欧洲的Pod创建到另一个集群中的服务时,我会超时。我对所有防火墙规则都进行了很好的检查,但是找不到解决方案。有人可以给我一些解决我问题的提示吗?
答案 0 :(得分:1)
问题是GCP需要使用VM IP地址才能在VPC外部进行通信。为了在VPN上允许跨集群通信,您需要确保集群可以像在同一虚拟网络上一样进行通信。如果内部IP地址(pod地址空间)用于访问虚拟网络外部的内部IP地址(在这种情况下,通过VPN),则GKE会阻止出口流量。因此,您需要配置ip表规则来伪装流量,因为它是来自VM实例IP地址而不是来自到另一个子网的所有传出流量的Pod IP地址。
有一个实现是使用守护程序集来定义iptables MASQUERADE规则。
您可以在github页面https://github.com/kubernetes-incubator/ip-masq-agent和k8s文档-https://kubernetes.io/docs/tasks/administer-cluster/ip-masq-agent/
中找到更多详细信息。