首页 > 解决方案 > 多区域共享 vpc gke 服务的内部负载均衡器

问题描述

我已按照此处的指南创建共享 vpc 并在此 vpc 中创建几个集群。该指南解释了使用内部负载平衡器在不同集群中的服务之间进行通信,但是根据文档

内部负载平衡在集群中创建一个私有 (RFC 1918) LoadBalancer Ingress IP 地址,用于从用户子网中的 IP 范围接收同一计算区域内网络上的流量。

如何促进接收来自我的 vpc 但来自不同计算区域的流量?对于上下文,我正在设置一个联邦普罗米修斯,这样我就可以有一个单一的窗格来查看所有指标。由于 prometheus 不提供任何身份验证机制,我只想允许来自 vpc 内部的流量,而不是公开访问它。

标签: google-compute-enginegoogle-kubernetes-engine

解决方案


要实现提供对 GKE 资源的访问权限的内部跨区域负载平衡器,请执行以下操作:

您的服务将被分配一个外部 IP,但防火墙将阻止来自内部来源的流量。

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  type: LoadBalancer
  loadBalancerSourceRanges:
  - 10.0.0.0/8

编辑:上述解决方案不太奏效;loadBalancerSourceRanges 实际上应用于源 pod 的外部 IP,而不是内部 IP。这意味着除了 10.0.0.0/8 之外,您还需要使用 Cloud NAT 来获得稳定的 IP 并在 YAML 中使用它


推荐阅读