在VPC网络中链接的不同集群之间的GCP中的pod和服务之间的通信

问题描述 投票:1回答:1

我在GCP中有2个集群,一个在欧洲,另一个在美国。我创建了一个VPC网络,以便彼此对齐子网并配置相对防火墙规则。现在我可以在pod之间创建调用,但是当我尝试从欧洲的pod创建它们到另一个集群中的服务时,我会获得超时。我检查了所有防火墙规则,但无法找到解决方案。有人可以给我一些提示来解决我的问题吗?

kubernetes google-cloud-platform vpc
1个回答
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/

© www.soinside.com 2019 - 2024. All rights reserved.