【问题标题】:How to make GKE clusters communicate using private IPs or networks?如何使 GKE 集群使用私有 IP 或网络进行通信?
【发布时间】:2020-03-08 03:28:45
【问题描述】:

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

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

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

有什么方法可以实现我的目标吗?像配置防火墙规则或其他什么?还是“全局路由模式”同时创建 VPC 网络之类的?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • GCP 将很快支持稳定版本的Global Access 功能,这将使内部负载均衡器跨区域。
    • 这在很多层面上都会令人惊叹,希望它也适用于主端点
    【解决方案2】:

    感谢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

    【讨论】:

      猜你喜欢
      • 2020-11-24
      • 2021-11-03
      • 2021-08-12
      • 2019-08-10
      • 2021-05-01
      • 2020-01-30
      • 2020-01-13
      • 2021-04-22
      • 1970-01-01
      相关资源
      最近更新 更多