启用 DNS 全局负载均衡

GSLB (Global Server Load Balancing) 全球服务器负载均衡是指在多个服务器集群间智能分配流量的 DNS 重分发功能。 GSLB 结合每个服务器的可用性, 距离, 系统负载, RPS, 连接数这些指标, 通过 DNS 响应将用户请求引导到到最合适的服务器上。

选择 DNS/Global Server Load Balancing, 选择启用后需要配置以下这些参数:

全局配置

  • Plan update interval:全局负载均衡计划更新间隔
  • Max number of DNS results:限制 DNS 解析记录条数,如果返回的解析记录条数大于限制,不会返回这些超出限制的解析记录。

节点配置

  • Metric: 负载均衡参考指标,(如果不选择指标,那么将按照 DNS 的配置进行应答, 不会进行智能重分发)
    • load_1m: 当前节点 1 分钟内的负载均值
    • load_5m:当前节点 5 分钟内的负载均值
    • load_15m: 当前节点 15 分钟内的负载均值
    • rps:当前节点的每秒处理的请求数
    • active_conns:当前节点的活跃连接数
  • Low Watermark:低水位指标(指标不同,配置数值也不同), 当节点的指标超过低水位时,按照概率将流量分发到其它节点
  • High Watermark:高水位指标(指标不同,配置数值也不同), 当节点的指标超过高水位时,不再将流量分发到该节点

以上配置完成后, Admin 就会根据实际节点指标按照更新间隔定时生成负载均衡计划并下发到各个节点,生成的计划可以在计划列表中查看。

查看负载均衡计划

全局负载均衡计划生成后,可以在计划列表中看到这些图表:

Total Traffic Distribution 为各集群网络流量(网络入口和出口流量)的分布图。

左侧包含两类图:

Traffic Distribution 展示了各集群节点的真实流量分布图。

Original DNS Plan 展示了不开启全局负载均衡,仅按照 DNS 解析结果进行负载均衡的流量分布图。

右侧的 GSLB Plan 为生成的负载均衡流量分布图。

如果和左侧图表的集群节点流量分布有差异,箭头颜色会显示红色或者绿色,分别代表减少该节点流量流入和增加节点流量流入。

点击 Previous PlanNext Plan 可以还查看之前的计划历史。

示例

这里以我们 mini-CDN 的北京集群为例子,没有配置指标之前两个节点的流量分布是近似的。

假设北京节点 2(127.0.0.3)配置较低,只能处理少量请求,以 rps 作为节点的参考指标,将北京节点 2 的高水位配置调整成一个比较低的数值。

等待计划更新,一段时间后可以发现负载均衡已经生效了,第二个节点的流量已经开始下降了,大部分请求会到北京节点 1(127.0.0.2)上,部分请求也会到杭州节点(127.0.0.1)上。

我们配置一条 DNS 记录:www.test.com, 解析为北京的网关集群。

使用 dig 命令指定 Node 节点连续请求 www.test.com 1000 次,可以看到解析的分布结果与全局负载均衡计划中的结果是近似的。

$ for i in {1..1000}; do dig www.test.com @127.0.0.1 +short; done | sort  | uniq -c
    168 127.0.0.1
    832 127.0.0.2