google-cloud-platform - 如何使 GKE 集群使用私有 IP 或网络进行通信?
问题描述
有没有办法让 GKE 集群(在同一个网络中)使用内部 IP 地址相互通信?
我知道 GKE 内部负载均衡器只能处理来自同一网络和同一区域的流量。我觉得这个实现很奇怪。
我知道 pod IP 是可路由的,但它们不是静态的,可以随时更改。另外,我知道loadBalancerSourceRanges
外部负载均衡器中有配置选项,使用它我可以只允许我想要的子网,但是如果我想使用内部而不是使用公共 IP 来保持每次通信怎么办?
有什么办法可以实现我正在尝试的吗?像配置防火墙规则或其他什么?还是创建 VPC 网络时的“全局路由模式”或其他什么?
解决方案
如果您在 2 个不同的区域有 2 个集群,并且您希望它们使用内部 IP 进行通信,那么您最好的选择是在集群中使用 nodePort 服务来公开您的 pod,然后配置一个 VM 实例作为每个集群的代理。
这与将 LoadBalancer 服务用作内部负载均衡器具有相同的效果,但它的好处是它可以跨多个区域工作。它还允许同一个负载均衡器处理所有服务的请求。
您需要注意的一件事是重载代理实例。根据请求的数量,您可能需要为集群配置多个代理实例,每个代理实例只处理少数服务。
推荐阅读
- angular - 刷新页面后Ag网格行选择丢失
- sql-server - SQL Server 累积分组
- c# - 如何在 Bot Framework 上检测 bot Idleness
- javascript - 将 JSON 数据转换为新的 JSON 输出
- fusionauth - “搜索引擎似乎已关闭或无法响应搜索查询”
- javascript - 为什么我的 v-for 循环没有在 Vue.js 中给我数据?
- node.js - 摩卡柴解决多个承诺
- javascript - 链错误引发多级承诺 Node.js
- javascript - 如何根据日期从列中检索数据
- javascript - 将对象输出到保持关闭功能的页面