概述

什么是负载均衡?

负载均衡是将流量分布到单个上游集群中的多个主机之间的一种方法,以便有效利用可用资源。有很多不同的方法可以实现这一点,因此 Envoy 提供了几种不同的负载均衡策略。从高层次来看,我们可以将这些策略分为两类:全局负载均衡和分布式负载均衡。

分布式负载均衡

分布式负载均衡是指让 Envoy 本身根据对上游主机位置的了解来确定如何将负载分布到端点。

示例

  • 主动健康检查: 通过对上游主机进行健康检查,Envoy 可以调整优先级和位置的权重以说明不可用的主机。

  • 区域感知路由: 这可以用于使 Envoy 优先选择更近的端点,而无需在控制平面中显式配置优先级。

  • 负载均衡算法: Envoy 可以使用几种不同的算法来使用提供的权重来确定要选择哪个主机。

全局负载均衡

全局负载均衡是指有一个单一的全局权威机构来决定如何将负载分布到主机之间。对于 Envoy 而言,这将由控制平面完成,控制平面能够通过指定各种参数(例如优先级、位置权重、端点权重和端点健康状况)来调整应用于各个端点的负载。

一个简单的例子是让控制平面将主机分配到不同的 优先级,这些优先级基于网络拓扑,以确保需要更少网络跳数的主机优先。这类似于区域感知路由,但由控制平面处理,而不是由 Envoy 处理。在控制平面中执行此操作的一个好处是它可以绕过一些 限制 区域感知路由。

更复杂的设置可能是将资源使用情况报告给控制平面,允许它调整端点或 位置 的权重以考虑当前资源使用情况,尝试将新请求路由到空闲主机而不是繁忙主机。

分布式和全局

最复杂的部署将使用来自这两个类别的功能。例如,全局负载均衡可用于定义高级路由优先级和权重,而分布式负载均衡可用于响应系统中的变化(例如使用主动健康检查)。通过组合它们,您可以获得两全其美:一个全局感知的权威机构可以在宏观层面上控制流量流,同时仍然允许各个代理在微观层面上对变化做出反应。