体系结构
下图说明了以 DNS 作为流量分发器的自动缩放功能的体系结构。
下图说明了以 NLB 作为流量分配器的自动缩放功能的体系结构。
Citrix Application Delivery Management (ADM)
Citrix Application Delivery Management 是一种基于 Web 的解决方案,用于管理部署在本地或云上的所有 Citrix ADC 部署。您可以使用此云解决方案通过单个、统一的、集中的基于云的控制台来管理、监视整个全球应用程序交付基础设施并对其进行故障排除。Citrix Application Delivery Management (ADM) 提供了在 Citrix ADC 部署中快速设置、部署和管理应用程序交付所需的所有功能,并对应用程序运行状况、性能和安全性进行了丰富的分析。
自动缩放组是在 Citrix ADM 中创建的,Citrix ADC VPX 实例是从 Citrix ADM 预配的。然后通过 Citrix ADM 中的样本部署应用程序。
流量分销商(NLB 或 DNS/Route53)
NLB 或 DNS/route53 用于在 AutoScale 组中的所有节点之间分配流量。有关详细信息,请参阅自动缩放流量分布模式。
Citrix ADM 与流量分销商通信,以更新前端应用程序的负载平衡虚拟服务器的应用程序域和 IP 地址。
Citrix ADM 自动缩放组
自动缩放组是一组 Citrix ADC 实例,它们将应用程序作为单个实体进行负载平衡,并根据配置的阈值参数值触发自动缩放。
Citrix ADC 群集
Citrix ADC 群集是一组 Citrix ADC VPX 实例,每个实例称为节点。客户端流量分布在节点之间,以提供高可用性、高吞吐量和可扩展性。
注意
- 自动缩放决策是在群集级别而不是在节点级别进行的。
- 独立群集托管在不同的可用区中,因此对某些共享状态功能的支持受到限制。
持久性会话(例如源 IP 持久性)和除基于 Cookie 的持久性之外的其他会话不能在群集之间共享。但是,负载平衡方法等所有无状态功能在多个可用区域中按预期工作。
AWS 自动扩展组
AWS 自动扩展组是 EC2 实例的集合,这些实例具有相似特征,并且为了实例扩展和管理的目的被视为逻辑分组。
AWS 可用区
AWS 可用区是区域内的一个孤立位置。每个区域由多个可用区组成。每个可用区域属于一个区域。
流量分布模式
当您将应用程序部署移动到云时,自动缩放将成为基础架构的一部分。当应用程序使用自动缩放向外扩展或扩展时,必须将这些更改传播到客户端。使用基于 DNS 或基于 NLB 的自动缩放来实现此传播。
基于 NLB 的自动缩放
在基于 NLB 的部署模式下,群集节点的分发层是 AWS 网络负载平衡器。
在基于 NLB 的自动扩展中,每个可用区仅提供一个静态 IP 地址。这是添加到 route53 的公有 IP 地址,后端 IP 地址可以是私有的。使用此公有 IP 地址时,在自动扩展期间配置的任何新 Citrix ADC 实例都会使用私有 IP 地址运行,不需要额外的公有 IP 地址。
使用基于 NLB 的自动扩展管理 TCP 流量。使用基于 DNS 的自动扩展管理 UDP 流量。
基于 DNS 的自动缩放
在基于 DNS 的自动缩放中,DNS 充当 Citrix ADC 群集节点的分发层。扩展更改将通过更新与应用程序对应的域名传播到客户端。目前,DNS 提供商是 AWS Route53。
注意
在基于DNS的自动缩放中,每个Citrix ADC实例都需要一个公有IP地址。
自动缩放的工作原理
以下流程图说明了自动缩放工作流程。
Citrix ADM 以一分钟的时间间隔从 AutoScale 预配置的群集中收集统计信息(CPU 使用率、内存使用率、吞吐量)。
将根据配置阈值评估统计信息。根据统计数据是超过最大阈值还是低于最小阈值,会分别触发向外扩展或扩展。
如果触发了向外扩展:
- 已预配置新节点。
- 节点附加到群集,并且配置将从群集同步到新节点。
- 节点已注册到 Citrix ADM。
- 在 DNS/NLB 中更新新的节点 IP 地址。
部署应用程序时,IPset
将在每个可用区域的群集上创建,域和实例 IP 地址将在 DNS/NLB 中注册。
- 如果触发了缩放:
- 将删除标识为删除的节点的 IP 地址。
- 节点与群集分离,取消置备,然后从 Citrix ADM 取消注册。
删除应用程序后,域和实例 IP 地址将从 DNS/NLB 中取消注册并删除IPset
。
示例
假设您已在具有以下配置的单个可用性区域中创建名为 asg_arn 的 Autoscale 组。
- 阈值参数 — 内存使用情况
- 最低限额:40
- 最大限制:85
- 观看时间 — 3 分钟
- 冷却时间 — 10 分钟
- 漏连接超时 — 10 分钟
- TTL 超时 — 60 秒
创建 AutoScale 组后,将从该组中收集统计信息。AutoScale 策略还会评估是否有任何 AutoScale 事件正在进行中,如果自动伸缩正在进行中,则在收集统计信息之前等待该事件完成。
事件顺序:
- T1 和 T2:内存使用超过最大阈值限制。
- T3-内存使用率低于最大阈值限制。
T6、T5、T4:内存使用量连续超过了三个手表时间的最大阈值限制。
- 触发向外扩展。
- 节点的预配置发生。
- 冷却时间有效。
T7 — T16:由于冷却周期有效,从 T7 到 T16 跳过此可用区的自动缩放评估。
- T18、T19、T20-内存使用量连续超过了三个手表时间的最小阈值限制。
- 缩放被触发。
- 漏极连接超时生效。
- IP 地址从 DNS/NLB 中解除。
T21 — T30:由于漏极连接超时生效,从 T21 到 T30 跳过此可用区的自动缩放评估。
- T31
- 对于基于 DNS 的自动缩放,TTL 有效。
- 对于基于 NLB 的自动缩放,会发生实例的撤销。
- T32
- 对于基于 NLB 的自动缩放,开始评估统计信息。
- 对于基于 DNS 的自动缩放,会发生实例的撤销。
- T33:对于基于 DNS 的自动缩放,开始评估统计信息。