Microsoft Azure 的自动缩放架构

NetScaler 控制台使用 Azure DNS 或 Azure 负载平衡器 (ALB) 处理客户端流量分配。

使用 Azure DNS 分配流量

下图说明了如何使用 Azure 流量管理器作为流量分配器进行基于 DNS 的自动缩放:

使用 Azure 流量管理器分配 Citrix AutoScale

在基于 DNS 的自动缩放中,DNS 充当分布层。Azure 流量管理器是 Microsoft Azure 中基于 DNS 的负载平衡器。流量管理器将客户流量定向到 NetScaler 控制台自动扩展组中可用的相应的 NetScaler 实例。

Azure 流量管理器将 FQDN 解析为 NetScaler 实例的 VIP 地址。

注意:

在基于 DNS 的自动扩展中,NetScaler 控制台 Autoscale 组中的每个 NetScaler 实例都需要一个公有 IP 地址。

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

使用 Azure 负载平衡器分配流量

下图说明如何使用 Azure 负载平衡器作为流量分配器进行自动缩放:

使用 Azure 负载平衡器分配 Citrix AutoScale

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

注意

公有 IP 地址分配给 Azure 负载平衡器。NetScaler VPX 实例不需要公有 IP 地址。

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

NetScaler 控制台 Autoscale 组

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

资源组

资源组包含与 NetScaler 自动缩放相关的资源。该资源组可帮助您管理自动扩缩所需的资源。有关更多信息,请参阅 管理资源组

Azure 后端虚拟机规模集

Azure 虚拟机规模是相同虚拟机实例的集合。虚拟机实例的数量可以增加或减少,具体取决于客户端流量。此集可为您的应用程序提供高可用性。有关更多信息,请参阅 虚拟机规模集

可用性区域

可用区是 Azure 区域内的隔离位置。每个区域由多个可用区组成。每个可用区域属于一个区域。每个可用区都有一个 NetScaler VPX 群集。有关更多信息,请参阅 Azure 中的可用性区域

可用性集

可用性集是 NetScaler VPX 群集和应用程序服务器的逻辑分组。可用性集有助于在群集中的多个独立硬件节点上部署 NetScaler 实例。通过可用性设置,可以确保在 Azure 中出现硬件或软件故障时,NetScaler 控制台能够可靠地自动缩放。有关更多信息,请参阅 可用性集

下图说明了可用性集中的自动扩展:

可用性设置

Azure 基础架构(ALB 或 Azure 流量管理器)将客户端流量发送到可用性集合中的 NetScaler 控制台自动缩放组。NetScaler 控制台在群集级别触发横向扩展或缩小操作。

自动缩放的工作原理

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

Citrix 自动缩放流程图

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

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

如果触发了横向扩展:

  1. 已配置新节点。

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

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

  4. 新节点 IP 地址在 Azure 流量管理器中更新。

如果触发了缩放:

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

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

  3. 等待指定的时间段以使连接耗尽。在 DNS 流量中,它还会等待指定的生存时间 (TTL) 周期。

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

注意:部署应用程序

时,会在每个可用区域中的群集上创建一个 IP 集。然后,域和实例 IP 地址将注册到 Azure 流量管理器或 ALB。删除应用程序后,域和实例 IP 地址将从 Azure 流量管理器或 ALB 取消注册。然后,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 从群集中移除并取消配置。

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

Microsoft Azure 的自动缩放架构