我们可以基于用户地理使用 GCP 的 L7 HTTPS 负载均衡器对后端进行地理定位吗?

Can we Geo Target Backends with GCP's L7 HTTPS Load Balancer based on User Geography?

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

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

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

我们目前的要求是对所有三个区域集群仅使用一个 L7 HTTPS LB 和一个域 www.someservice.com

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

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

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

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

it uses a global external IP address and can intelligently route requests from users to the closest backend instance group or NEG, based on proximity. For example, if you set up instance groups in North America, Europe, and Asia, and attach them to a load balancer's backend service, user requests around the world are automatically sent to the VMs closest to the users,

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

不可能像the limitations

中描述的那样

Combining multiple Ingress resources into a single Google Cloud load balancer is not supported

您也许可以手动构建一些东西,但我无法保证本手册(即脱离 kubernetes ingress controller)配置的演变、延迟和可靠性。