Google Cloud 的自动缩放架构
NetScaler 控制台使用谷歌网络负载平衡器处理客户流量分配。下图说明了如何使用 Google 网络负载平衡器作为流量分配器进行自动扩缩:
Google 网络负载平衡器是群集节点的分发层。网络负载平衡器管理客户端流量并将其分配到 NetScaler VPX 群集。网络负载平衡器将客户端流量发送到 NetScaler VPX 群集节点,这些群集节点可在 NetScaler 控制台自动扩展组中跨区域使用。
NetScaler 控制台在群集级别触发横向扩展或缩小操作。触发横向扩展时,将配置已注册的虚拟机并将其添加到群集中。同样,当触发扩展时,节点也会从 NetScaler VPX 群集中删除并取消置备。
NetScaler 控制台自动缩放组是一组 NetScaler 实例,它们将应用程序作为单个实体进行负载平衡,并根据配置的阈值参数值触发自动扩展。
自动缩放的工作原理
下面的流程图说明了自动缩放工作流:
NetScaler 控制台每分钟从 Autoscale 配置的群集中收集统计信息(CPU、内存和吞吐量)。
将根据配置阈值评估统计信息。根据统计数据,会触发向外扩展或缩小规模。当统计数据超过最大阈值时,将触发向外扩展。当统计数据运行在最低阈值以下时,将触发缩放。
如果触发了横向扩展:
-
已配置新节点。
-
节点附加到群集,并且配置将从群集同步到新节点。
-
该节点已在 NetScaler 控制台中注册。
-
新的节点 IP 地址将在 Google 网络负载平衡器中更新。
如果触发了缩放:
-
已确定要移除的节点。
-
停止与选定节点的新连接。
-
该节点与群集分离,从 NetScaler 控制台取消注册,然后从 Google Cloud 取消配置。
注意:部署应用程序
时,会在每个可用区域中的群集上创建一个 IP 集。然后,域和实例 IP 地址将在 Google 网络负载平衡器中注册。删除应用程序后,域和实例 IP 地址将从 Google 网络负载平衡器中取消注册。然后,IP 集被删除。
自动缩放方案示例
假设您已在具有以下配置的单个可用性区域中创建名为 asg_arn 的 Autoscale 组。
-
选定的阈值参数 — 内存使用情况。
-
设置为内存的阈值限制:
-
最低限额:40
-
最大限额:85
-
-
观看时间 — 2 分钟。
-
冷却时间 — 10 分钟。
-
取消配置期间的等待时间 — 10 分钟。
-
DNS 生存时间 — 10 秒。
创建 AutoScale 组后,将从该组中收集统计信息。AutoScale 策略还会评估是否有任何 AutoScale 事件正在进行中。如果正在进行自动缩放,请等待该事件完成,然后再收集统计信息。
事件的顺序
-
内存使用量超过 T2的阈值限制。但是,不会触发向外扩展,因为它在指定的手表时间内没有突破。
-
连续突破最大阈值 2 分钟(观看时间)后,将在 T5 触发横向扩展。
-
没有对 T5-T10 之间的漏洞采取任何行动,因为节点配置正在进行中。
-
节点在 T10 配置并添加到群集中。冷却时间已开始。
-
由于冷却时间,未对 T10-T20 之间的违规行为采取任何行动。此时间段确保了 AutoScale 组的实例的有机增长。在触发下一个扩展决策之前,它会等待当前流量稳定并平均出现当前实例集。
-
内存使用率降至 T23的最低阈值限制以下。但是,不会触发缩放,因为它在指定的手表时间内没有突破。
-
连续突破最低阈值 2 分钟(观看时间)后,将在 T26 触发缩放。群集中的节点被标识为取消置备。
-
没有对 T26-T36 之间的漏洞采取任何措施,因为 NetScaler 控制台正在等待耗尽现有连接。对于基于 DNS 的自动缩放,TTL 有效。
注
意对于基于 DNS 的自动扩展,NetScaler 控制台会等待指定的生存时间 (TTL) 周期。然后,在启动节点取消置备之前,它会等待现有连接耗尽。
-
没有对 T37-T39 之间的漏洞采取任何行动,因为正在取消节点配置。
-
节点已在 T40 从群集中移除并取消配置。
在启动节点取消置备之前,与选定节点的所有连接都已耗尽。因此,在节点取消置备后,将跳过冷却时间。