0

我有三个不同的 GKE 集群,分布在三个不同的区域。所有三个集群都位于三个不同的 L7 HTTPS 负载均衡器后面。所有三个集群中的服务都可以通过三个不同的 URL 访问:

www.us.someservice.com
www.eu.someservice.com
www.asia.someservice.com

所有三个集群都有一些特定于区域的服务。例如:来自美国的用户无法完全满足来自欧盟或亚洲服务的某些特定请求。

我们当前的要求是www.someservice.com为所有三个区域集群只使用一个 L7 HTTPS LB 和一个域。

但是,我们希望对传入的请求进行地理定位。假设来自美国的用户点击www.someservice.com,那么他们的请求应该被路由到美国地区的 GKE 集群,我们希望为来自不同地区的所有其他用户提供这种模式(如下图所示)。

在此处输入图像描述

有没有办法在 GCP 的 L7 HTTPS LB 中实现这种路由?我正在查看 URL 映射、主机和路径规则,但无法找到与地理定位请求相关的任何内容!

4

3 回答 3

1

如限制中所述,这是不可能的

不支持将多个 Ingress 资源组合到一个 Google Cloud 负载平衡器中

您也许可以手动构建一些东西,但我不能保证本手册(即超出 kubernetes 入口控制器)配置的演变、延迟和可靠性。

于 2021-04-22T18:50:21.023 回答
1

默认情况下,负载均衡器会自动将请求路由到关闭区域:

https://cloud.google.com/load-balancing/docs/https#cross-region_load_balancing

它使用全局外部 IP 地址,可以根据邻近度智能地将来自用户的请求路由到最近的后端实例组或 NEG。例如,如果您在北美、欧洲和亚洲设置实例组,并将它们附加到负载均衡器的后端服务,则世界各地的用户请求会自动发送到离用户最近的虚拟机,

于 2021-04-22T16:44:58.087 回答
1

使用全局 HTTP(S) 负载均衡器,流量被分配到最近的后端。流量分配由 Google 管理(您不能指定将 RU 流量发送到 ASIA)。

于 2021-04-22T16:45:04.627 回答