0

有没有办法让 GKE 集群(在同一个网络中)使用内部 IP 地址相互通信?

我知道 GKE 内部负载均衡器只能处理来自同一网络和同一区域的流量。我觉得这个实现很奇怪。

我知道 pod IP 是可路由的,但它们不是静态的,可以随时更改。另外,我知道loadBalancerSourceRanges外部负载均衡器中有配置选项,使用它我可以只允许我想要的子网,但是如果我想使用内部而不是使用公共 IP 来保持每次通信怎么办?

有什么办法可以实现我正在尝试的吗?像配置防火墙规则或其他什么?还是创建 VPC 网络时的“全局路由模式”或其他什么?

4

2 回答 2

1

如果您在 2 个不同的区域有 2 个集群,并且您希望它们使用内部 IP 进行通信,那么您最好的选择是在集群中使用 nodePort 服务来公开您的 pod,然后配置一个 VM 实例作为每个集群的代理。

这与将 LoadBalancer 服务用作内部负载均衡器具有相同的效果,但它的好处是它可以跨多个区域工作。它还允许同一个负载均衡器处理所有服务的请求。

您需要注意的一件事是重载代理实例。根据请求的数量,您可能需要为集群配置多个代理实例,每个代理实例只处理少数服务。

于 2019-11-13T01:31:09.057 回答
1

感谢Global Access,添加networking.gke.io/internal-load-balancer-allow-global-access: "true"到注释将允许您跨区域进行通信。

“全球访问在 GKE 集群 1.16+ 的 Beta 版和 1.17.9-gke.600+ 的 GA 版中可用。”

https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing#global_access

于 2021-04-03T20:41:33.437 回答