Google Cloud 的自动缩放架构

NetScaler 控制台使用谷歌网络负载平衡器处理客户流量分配。下图说明了如何使用 Google 网络负载平衡器作为流量分配器进行自动扩缩:

用于自动扩缩的 Google Cloud 架构

Google 网络负载平衡器是群集节点的分发层。网络负载平衡器管理客户端流量并将其分配到 NetScaler VPX 群集。网络负载平衡器将客户端流量发送到 NetScaler VPX 群集节点,这些群集节点可在 NetScaler 控制台自动扩展组中跨区域使用。

NetScaler 控制台在群集级别触发横向扩展或缩小操作。触发横向扩展时,将配置已注册的虚拟机并将其添加到群集中。同样,当触发扩展时,节点也会从 NetScaler VPX 群集中删除并取消置备。

NetScaler 控制台自动缩放组是一组 NetScaler 实例,它们将应用程序作为单个实体进行负载平衡,并根据配置的阈值参数值触发自动扩展。

自动缩放的工作原理

下面的流程图说明了自动缩放工作流:

Citrix 自动缩放流程图

NetScaler 控制台每分钟从 Autoscale 配置的群集中收集统计信息(CPU、内存和吞吐量)。

将根据配置阈值评估统计信息。根据统计数据,会触发向外扩展或缩小规模。当统计数据超过最大阈值时,将触发向外扩展。当统计数据运行在最低阈值以下时,将触发缩放。

如果触发了横向扩展:

  1. 已配置新节点。

  2. 节点附加到群集,并且配置将从群集同步到新节点。

  3. 该节点已在 NetScaler 控制台中注册。

  4. 新的节点 IP 地址将在 Google 网络负载平衡器中更新。

如果触发了缩放:

  1. 已确定要移除的节点。

  2. 停止与选定节点的新连接。

  3. 该节点与群集分离,从 NetScaler 控制台取消注册,然后从 Google Cloud 取消配置。

注意:部署应用程序

时,会在每个可用区域中的群集上创建一个 IP 集。然后,域和实例 IP 地址将在 Google 网络负载平衡器中注册。删除应用程序后,域和实例 IP 地址将从 Google 网络负载平衡器中取消注册。然后,IP 集被删除。

自动缩放方案示例

假设您已在具有以下配置的单个可用性区域中创建名为 asg_arn 的 Autoscale 组。

  • 选定的阈值参数 — 内存使用情况。

  • 设置为内存的阈值限制:

    • 最低限额:40

    • 最大限额:85

  • 观看时间 — 2 分钟。

  • 冷却时间 — 10 分钟。

  • 取消配置期间的等待时间 — 10 分钟。

  • DNS 生存时间 — 10 秒。

创建 AutoScale 组后,将从该组中收集统计信息。AutoScale 策略还会评估是否有任何 AutoScale 事件正在进行中。如果正在进行自动缩放,请等待该事件完成,然后再收集统计信息。

折线图 Citrix 自动缩放

事件的顺序

  1. 内存使用量超过 T2的阈值限制。但是,不会触发向外扩展,因为它在指定的手表时间内没有突破。

  2. 连续突破最大阈值 2 分钟(观看时间)后,将在 T5 触发横向扩展。

  3. 没有对 T5-T10 之间的漏洞采取任何行动,因为节点配置正在进行中。

  4. 节点在 T10 配置并添加到群集中。冷却时间已开始。

  5. 由于冷却时间,未对 T10-T20 之间的违规行为采取任何行动。此时间段确保了 AutoScale 组的实例的有机增长。在触发下一个扩展决策之前,它会等待当前流量稳定并平均出现当前实例集。

  6. 内存使用率降至 T23的最低阈值限制以下。但是,不会触发缩放,因为它在指定的手表时间内没有突破。

  7. 连续突破最低阈值 2 分钟(观看时间)后,将在 T26 触发缩放。群集中的节点被标识为取消置备。

  8. 没有对 T26-T36 之间的漏洞采取任何措施,因为 NetScaler 控制台正在等待耗尽现有连接。对于基于 DNS 的自动缩放,TTL 有效。

    意对于基于 DNS 的自动扩展,NetScaler 控制台会等待指定的生存时间 (TTL) 周期。然后,在启动节点取消置备之前,它会等待现有连接耗尽。

  9. 没有对 T37-T39 之间的漏洞采取任何行动,因为正在取消节点配置。

  10. 节点已在 T40 从群集中移除并取消配置。

在启动节点取消置备之前,与选定节点的所有连接都已耗尽。因此,在节点取消置备后,将跳过冷却时间。

Google Cloud 的自动缩放架构