目标:
- 多台虚拟机在多个区域充当数据库集群
- LB 上的单个内部 IP
- 没有公开曝光
- 流量转发到最近的可用后端
最接近的解决方案是 TCP 代理负载平衡,但它有外部 IP,我想避免这种情况。另一方面,有内部 TCP 负载平衡器,但它仅在单个区域内工作。是否可以将多个后端服务(来自不同区域)聚集在一个内部负载平衡器下(而不暴露给互联网)?
答案1
我认为以下公开信息可能会有所帮助,它们分享了负载均衡并选择最适合您实施的选项,您可以看到桌子与您所分享的比较。
出于内部目的,我们只有 2 个选择内部 HTTP(S)和内部 TCP/UDP。这些都不能用作多区域,但您可以使用 PC Network Peering 或 Cloud VPN 和 Cloud Interconnect 以及内部 TCP/UDP 负载平衡,您可以在内部 TCP/UDP 负载平衡和连接的网络。
答案2
不可以,Google Cloud 内部负载均衡器仅限于单个区域内的后端。
可以使用具有一个 IP 和多个区域资源的外部负载均衡器, 高级网络层。
GCP 假设区域内部是冗余的,区域之间是相互隔离的,全局负载均衡器意味着外部。他们对跨区域后端的私有网络负载均衡器不感兴趣。这留给应用程序。可能使用由人员启动的手动故障转移过程进行复制。
考虑不要将 GCP 的负载均衡器用于数据库层。根据复制或集群配置的需要,使用其他远程节点配置数据库。DNS 中的静态内部 IP 地址。将客户端指向可以满足其请求的适当数据库节点,可能是本地区域,但也可能不是。