如何使用 Google Cloud HTTP(S) 负载均衡器在两个 Cloud 运行 服务之间进行渐进式流量迁移
How to do gradual traffic migration between two Cloud Run services using Google Cloud HTTP(S) load balancer
我已经设置了一个外部 HTTP(S) 负载平衡器,如下所示:
- 2 个无服务器 NEG,每个指向各自区域中的不同云 运行 服务
- 1 个后端服务,使用 2 个 NEG 作为 2 个后端
- 1 将所有内容发送到后端服务的主机和路径规则
- 1 HTTPS 前端指向主机和路径规则
此时,我注意到流量被路由到距离发出请求的客户端区域最近的云 运行 服务。
我想将其更改为在第 1 天将 100% 的流量路由到一个云 运行 服务,在第 2 天将 50% 路由到每个服务,在第 3 天将 100% 的流量路由到一个云 运行 服务其他云 运行 服务的流量。
不清楚外部 HTTP(S) 负载平衡器是否可以帮助解决这个问题。如果可以,不清楚是否应该在后端服务或主机和路径规则中完成。
据我所知,外部HTTPS负载均衡只能路由到最近的位置,不能按权重调度流量。
此外,您的解决方案需要部署在 2 个不同的区域,因为您不能在同一后端服务中在同一区域部署 2 个后端。
目前最简单的解决方案是使用云 运行 流量拆分功能。将所有流量路由到同一服务,然后让云 运行 负载均衡器调度请求。
Google 云负载均衡器不支持 weighted/percent-based 外部 HTTP(S) LB 的负载均衡。这列在 https://cloud.google.com/load-balancing/docs/features#load_balancing_methods.
Maybe I need to create 2 Backend Services, each pointing at one NEG?
是的,如果外部 HTTPS GCLB 支持,这就是您要做的。您需要为每个无服务器 NEG 创建单独的后端服务,并在 urlMap 对象的路由规则中列出 weightedBackendServices
。您可以找到一个示例 here,但我认为它仅适用于目前根据上述 link 的内部负载平衡器 (ILB)。
我已经设置了一个外部 HTTP(S) 负载平衡器,如下所示:
- 2 个无服务器 NEG,每个指向各自区域中的不同云 运行 服务
- 1 个后端服务,使用 2 个 NEG 作为 2 个后端
- 1 将所有内容发送到后端服务的主机和路径规则
- 1 HTTPS 前端指向主机和路径规则
此时,我注意到流量被路由到距离发出请求的客户端区域最近的云 运行 服务。
我想将其更改为在第 1 天将 100% 的流量路由到一个云 运行 服务,在第 2 天将 50% 路由到每个服务,在第 3 天将 100% 的流量路由到一个云 运行 服务其他云 运行 服务的流量。
不清楚外部 HTTP(S) 负载平衡器是否可以帮助解决这个问题。如果可以,不清楚是否应该在后端服务或主机和路径规则中完成。
据我所知,外部HTTPS负载均衡只能路由到最近的位置,不能按权重调度流量。
此外,您的解决方案需要部署在 2 个不同的区域,因为您不能在同一后端服务中在同一区域部署 2 个后端。
目前最简单的解决方案是使用云 运行 流量拆分功能。将所有流量路由到同一服务,然后让云 运行 负载均衡器调度请求。
Google 云负载均衡器不支持 weighted/percent-based 外部 HTTP(S) LB 的负载均衡。这列在 https://cloud.google.com/load-balancing/docs/features#load_balancing_methods.
Maybe I need to create 2 Backend Services, each pointing at one NEG?
是的,如果外部 HTTPS GCLB 支持,这就是您要做的。您需要为每个无服务器 NEG 创建单独的后端服务,并在 urlMap 对象的路由规则中列出 weightedBackendServices
。您可以找到一个示例 here,但我认为它仅适用于目前根据上述 link 的内部负载平衡器 (ILB)。