我正在尝试在 GCP 中创建一个主动/被动集群,并且正在考虑使用本机负载均衡器来实现这一目标。例如,我希望负载均衡器仅在主节点集(活动节点)未通过健康检查时才将流量转发到特定节点集(备用节点)。我原以为这是可能的,但我看不到任何可以让我实现这一目标的选项。据我所知,只有循环负载平衡是可能的,还是我错过了什么?
我正在尝试在 GCP 中创建一个主动/被动集群,并且正在考虑使用本机负载均衡器来实现这一目标。例如,我希望负载均衡器仅在主节点集(活动节点)未通过健康检查时才将流量转发到特定节点集(备用节点)。我原以为这是可能的,但我看不到任何可以让我实现这一目标的选项。据我所知,只有循环负载平衡是可能的,还是我错过了什么?
我在 GCP 中找不到这样的功能。但是,如果使用 HTTPs LB,我只能考虑拥有 2 组 IMG,并在后端设置容量设置。因此,一个 IMG 将 100% 接收所有请求,第二个 IMG 设置为 0%。
您将需要监控 IMG 或实例的运行状况检查,如果某些运行状况不佳,则可以使用 API 调用更改两个组的容量设置。您将需要有一个 cron 作业来监控和一个将运行 API 调用的脚本。
或者,您可以尝试设置autohealing,以便修复不健康的实例,因为这是恢复不健康实例的更好、更简单的方法。
如果这不是您想要的,那么您可以在此处提交功能请求以进行负载平衡。
循环负载平衡仅用于具有相同托管实例组 (MIG) 的计算实例。如果您想控制平衡模式,则需要将主动节点和被动节点放在单独的节点和区域/区域中。同样,当您可以通过跨多个区域和区域部署活动节点来使它们具有高可用性时,为什么还要为活动/被动节点烦恼呢?GLB 将选择健康的活动节点。
如果您认为您仍然需要主动/被动节点,据我所知,GCP 并未提供您所要求的确切功能,但我认为您可以通过调整GLB 后端服务资源的
balancingMode
and属性来接近。capacity setting
例如,您可以将备用节点的 cpu 利用率和容量设置为几乎为零(但不是零),并在活动节点上将其设置为 100%。这样,负载均衡器会将所有或大部分流量发送到主动节点,只有当主动节点发生故障时,它才会将流量路由到被动节点。由于 GLB 也是基于地理的,因此您可以将活动节点放在离客户端更近的 MIG 中。参考 - Google 全局 HTTP 负载平衡器文档