缓慢地将流量从一个 GCP 负载均衡器迁移到另一个

缓慢地将流量从一个 GCP 负载均衡器迁移到另一个

我有两个相同的 GKE 集群(我们称之为“蓝”和“绿”)。它们每个都有一个通过 GCP 负载均衡器的入口。我想将流量从一个集群流到另一个集群。这将用于测试重大更改,例如 K8s/Istio 升级等。

我不确定如何利用 GCP 基础设施实现这一点。

我探索过的选项:

云端 DNS- 这是最简单的,我只需将 A 记录从“蓝色”切换到“绿色”LB,然后等待 TTL 到期即可。这没问题,但流量需要一段时间才能训练,行为不当的 DNS 客户端可能会导致问题。我也无法涓流流量,因为 Cloud DNS 中没有“加权循环”,切换是“全有或全无”,这不是我想要的。

云 CDN- 我可以添加两个 LB 作为原点,但是在它们之间切换会非常慢,而且在我看来这是对工具的滥用。

多层 LB- 让 LB 位于“蓝色”和“绿色”LB 之上,并将流量导向当前“活跃”的 LB。这在 GCP 中似乎根本不可能。似乎 LB 不能将 LB 用作后端(包括 HTTP、TCP、网络)

自定义顶层LB- 我可以使用 HAProxy 或其他东西来前置 GCP 负载均衡器,但这让我感到紧张。这将是一个吞吐量相当高的链接,我不想在良好的性能和 HA 特性上做出妥协。

如何在不丢失现有设置的 HA 和性能属性的情况下在 GCP 中实现这一点?

答案1

实际上,有几种不同的方法可以对两个 GKE 集群之间的流量进行负载平衡。

  • 你可以利用以下工具:多集群 Ingress1由 Google 推出。它将为多 GKE 集群创建一个 Cloud http 负载均衡器。

  • 正如你提到的,你可以使用 Google 流量管理器2将流量引导至不同的 GKE 集群。

  • 而且 Istio 还提供多个集群3选项,让您更好地控制多个 Kubernetes 集群之间的流量。

相关内容