如何使GKE群集使用专用IP或网络进行通信?

时间:2019-11-12 12:05:06

标签: google-cloud-platform load-balancing google-kubernetes-engine internal-load-balancer

有什么方法可以使GKE群集(在同一网络中)使用内部IP地址相互通信吗?

我知道GKE内部负载平衡器只能处理来自同一网络和同一区域的流量。而且我发现这种实现非常奇怪。

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

有什么方法可以实现我的目标吗?喜欢配置防火墙规则还是其他?或在创建VPC网络或其他操作时选择“全局路由模式”?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

如果您在2个不同的区域中有2个集群,并且希望它们使用内部IP进行通信,那么最好的选择是使用集群中的nodePort服务来公开您的Pod,然后为每个集群使用configure a VM instance to act as a proxy

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

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