Traffic Director 负载均衡

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

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

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

传入的用户请求被路由到“前端”微服务。然后,包含“前端”微服务的主机上安装的服务代理会将流量引导至“购物车”微服务。包含“购物车”微服务的主机上安装的边车代理再将流量引导至“付款”微服务。 在无代理 gRPC 环境中,您的 gRPC 应用将处理流量管理。

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

在以下示例中,如果 Traffic Director 收到健康检查结果,表明在 us-central1 中运行“购物车”微服务的虚拟机 (VM) 实例运行状况不佳,则 Traffic Director 会指示 Front End 微服务的边车代理将流量故障切换到在 asia-southeast1 中运行的“购物车”微服务。由于自动扩缩功能与 Google Cloud 中的流量管理集成,Traffic Director 会将额外流量通知 asia-southeast1 的 MIG,并且 MIG 的的规模会增大。

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

使用全球负载均衡部署中的 Traffic Director 进行故障切换。
在全球负载均衡部署中使用 Traffic Director 进行故障切换(点击可放大)

Traffic Director 中的负载平衡组件

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

  • 包含配置值的后端服务。
  • 运行健康检查,为部署中的虚拟机和 Google Kubernetes Engine (GKE) pod 的提供健康检查。
  • 对于服务路由 API,MeshGateway 资源和 Route 资源。
  • 对于负载均衡 API,一种全局转发规则,其中包括 VIP 地址、目标代理和网址映射。

与 xDS API 兼容的边车代理(例如 Envoy)在客户端虚拟机实例或 Kubernetes pod 中运行。Traffic Director 用作控制平面,并使用 xDS API 直接与每个代理通信。在数据平面中,应用将流量发送到转发规则或 Mesh 资源中配置的 VIP 地址。边车代理或 gRPC 应用会拦截流量并将其重定向到相应的后端。

下图显示了在 Compute Engine 虚拟机或 GKE Pod 上运行的应用、组件以及 Traffic Director 部署中的流量。其中显示了用于确定流量路由的 Traffic Director 和 Cloud Load Balancing 资源。下图显示了旧版负载均衡 API。

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

后续步骤