Traffic Director 负载平衡

Traffic Director 通过 Sidecar 代理为您的内部微服务提供全球负载平衡。您可以在多个区域中部署运行内部微服务(基于 Sidecar 代理)的实例。Traffic Director 将运行状况、路由和后端信息提供给 Sidecar 代理,使其能够以最佳方式将流量路由至某个服务位于多个云区域的应用实例。

在下图中,用户流量通过外部全球负载平衡器进入 Google Cloud 部署。外部负载平衡器根据最终用户的位置将流量分配给 us-central1asia-southeast1 中的前端微服务。

内部部署采用了三项全球微服务:前端、购物车和付款。每项服务都在 us-central1asia-southeast1 这两个区域的托管实例组上运行。Traffic Director 使用的是全球负载平衡算法,该算法会将加利福尼亚用户的流量引导至 us-central1 中部署的微服务,同时将新加坡用户的请求引导至 asia-southeast1 中的微服务。

传入的用户请求被路由到“前端”微服务。然后,包含“前端”微服务的主机上安装的服务代理会将流量引导至“购物车”微服务。包含“购物车”微服务的主机上安装的 Sidecar 代理再将流量引导至“付款”微服务。

全球负载平衡部署中的 Traffic Director(点击可放大)
全球负载平衡部署中的 Traffic Director(点击可放大)

在以下示例中,如果 Traffic Director 收到运行状况检查结果,指示在 us-central1 中运行“购物车”微服务的虚拟机运行状况不佳,则 Traffic Director 会指示“前端”微服务的服务代理将流量故障转移到在 asia-southeast1 中运行的“购物车”微服务。由于自动扩缩功能与 Google Cloud 中的流量管理功能集成在一起,因此 Traffic Director 会向 asia-southeast1 中的托管实例组发送有关其他流量的通知,并且托管实例组的规模会增大。

Traffic Director 检测到“付款”微服务的所有后端服务的运行状况良好,因此 Traffic Director 会指示“购物车”微服务的 Envoy 代理将一部分流量(最高可达客户配置的容量)发送到 asia-southeast1,并将剩余流量溢出到 us-central1

使用全球负载平衡部署中的 Traffic Director 进行故障转移(点击可放大)
使用全球负载平衡部署中的 Traffic Director 进行故障转移(点击可放大)

Traffic Director 中的负载平衡组件

在设置 Traffic Director 期间,您可以配置多个负载平衡组件:

  • 包含 VIP 地址的全局转发规则、目标代理和网址映射 所有这些都属于 Traffic Director 的流量路由机制。目标代理必须是目标 HTTP 代理。
  • 包含配置值的后端服务。
  • 运行状况检查,提供对部署中虚拟机和 pod 的运行状况检查。

下图显示了在 Compute Engine 虚拟机或 Google Kubernetes Engine pod 上运行的应用、组件以及 Traffic Director 部署中的流量:

要配置的 Traffic Director 资源(点击可放大)
要配置的 Traffic Director 资源(点击可放大)

该图显示了 Traffic Director 及其用于确定流量路由的 Google Cloud 负载平衡资源。与 xDS API 兼容的 Sidecar 代理(例如图中所示的 Envoy)在客户端虚拟机实例或 Kubernetes pod 中运行。Traffic Director 用作控制平面,并使用 xDS API 直接与每个代理进行通信。在数据平面中,应用将流量发送到 Google Cloud 转发规则中配置的 VIP 地址。该流量会被 Sidecar 代理拦截,然后被重定向到相应的后端。如需详细了解服务发现和流量拦截,请参阅 Traffic Director 服务发现