google-compute-engine - 多区域共享 vpc gke 服务的内部负载均衡器
问题描述
我已按照此处的指南创建共享 vpc 并在此 vpc 中创建几个集群。该指南解释了使用内部负载平衡器在不同集群中的服务之间进行通信,但是根据文档:
内部负载平衡在集群中创建一个私有 (RFC 1918) LoadBalancer Ingress IP 地址,用于从用户子网中的 IP 范围接收同一计算区域内网络上的流量。
如何促进接收来自我的 vpc 但来自不同计算区域的流量?对于上下文,我正在设置一个联邦普罗米修斯,这样我就可以有一个单一的窗格来查看所有指标。由于 prometheus 不提供任何身份验证机制,我只想允许来自 vpc 内部的流量,而不是公开访问它。
解决方案
要实现提供对 GKE 资源的访问权限的内部跨区域负载平衡器,请执行以下操作:
- 创建一个 LoadBalancer 类型的服务。
- 配置您的云提供商防火墙以限制对您的 VPC 的访问。
您的服务将被分配一个外部 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 中使用它
推荐阅读
- angular - 角度反应形式 - 以编程方式将输入元素绑定到反应形式
- react-native - onPanResponderRelease 后,自动动画移动无法正常工作
- apache - Apache 无法启动。设置虚拟主机。MAMP
- android - 如何使用 listview 获取从 getItemAtPosition 中选择的 id
- matlab - Best approach to speed up pixel processing in matlab
- python - Is there a way of addressing all the inputs in a program?
- android - Continually Running Background Service
- bash - Fill empty fields - awk
- android - Load a single field of the object in realm
- angular - Firefox 控制台中的异常跟踪不使用源映射