AutoScale 配置
NetScaler ADM 管理 AWS 中的所有 NetScaler VPX 群集。NetScaler ADM 使用云访问配置文件访问 AWS 资源。
必备条件
本节介绍在配置自动扩展 NetScaler VPX 实例之前必须在 AWS 和 NetScaler ADM 中完成的先决条件。
本文档假定以下情况:
- 您已拥有 AWS 帐户。
- 您已创建具有所有管理权限的身份和访问管理 (IAM) 用户。
设置 AWS 组件
在 NetScaler ADM 中自动扩展 NetScaler VPX 实例之前,在 AWS 中执行以下任务:
提示
您可以使用AWS CloudFormation 模板自动执行 NetScaler 自动扩展的 AWS 先决条件步骤。
有关如何创建 VPC、子网和安全组的更多信息,请参阅AWS 文档。
创建子网
在您的 VPC 中创建三个子网,分别用于管理、客户端和服务器连接。在 VPC 中为每个子网定义的范围内指定 IPv4 CIDR 块。指定希望子网驻留的可用区。在服务器所在的每个可用区中创建所有三个子网。
管理. 虚拟私有云 (VPC) 中专门用于管理的现有子网。NetScaler 必须联系 AWS 服务并要求Internet访问。配置 NAT Gateway 并添加路由表条目以允许从此子网访问 Internet。
注意:
确保在 NetScaler ADM 中打开
27000
和7279
端口。这些端口用于从 NetScaler ADM 检出 NetScaler 许可证。有关更多信息,请参阅端口。客户端。虚拟私有云 (VPC) 中专用于客户端流量的现有子网。通常情况下,NetScaler 从Internet通过公有子网接收应用程序的客户端流量。将客户端子网与具有通往 Internet Gateway 的路由表相关联。此子网允许 NetScaler 接收来自互联网的应用程序流量。
服务器。虚拟私有云 (VPC) 中专用于服务器端流量的现有子网。ADC 通过此子网向后端应用程序服务器发送流量。接收应用程序流量的所有应用程序服务器都必须存在于此子网中。如果服务器在此子网之外,则应用程序流量将通过子网的网关接收。
创建安全组
创建安全组以控制 NetScaler VPX 实例中的入站和出站流量。在 NetScaler Autoscale 组中为要控制的传入和传出流量创建规则。您可以根据需要添加多个规则。
- 管理. 您帐户中专门用于管理 NetScaler VPX 的现有安全组。允许在以下 TCP 和 UDP 端口上使用入站规则。
- TCP:80、22、443、3008–3011、4001
- UDP: 67、123、161、500、3003、4500、7000、27000、7279
确保安全组允许 NetScaler ADM 代理访问 VPX。
客户端。您帐户中专门用于 NetScaler VPX 实例的客户端通信的现有安全组。
- TCP: 1025-11024、11025-21024、21025-31024
- UDP: 1025-11024
- 服务器。您帐户中的现有安全组专用于 NetScaler VPX 的服务器端通信。通常,它会阻止所有入站规则,并允许出站规则到达整个 VPC。
在 AWS 中订阅 NetScaler VPX 许可证
- 前往AWS 市场。
- 使用您的凭据登录。
搜索 NetScaler VPX 客户授权、高级版或高级版。
- 订阅 NetScaler VPX 客户许可、高级版或 NetScaler VPX 高级版许可证。
注意
如果您想让 AutoScale 组中的 ADC 实例签出 NetScaler ADM 中的许可证,请确保满足以下条件:
- 所需的 ADC 许可证在 NetScaler ADM 中可用。
- NetScaler VPX 客户授权产品已订阅。
创建 IAM 角色
创建 IAM 实体,向 NetScaler ADM 和 ADC 实例授予在您的 AWS 帐户上执行操作的权限。NetScaler ADM 在您的 AWS 帐户中创建或删除以下内容:
- NetScaler EC2 实例
- 云负载平衡器
- Route53
注意:
确保角色名称以“Citrix-ADM-”开头,实例配置文件名称以“Citrix-ADC-开头。“
为 NetScaler ADM 创建 IAM 实体:
创建一个 IAM 角色,这样您就可以在您的 AWS 帐户和 Citrix 的 AWS 帐户之间建立信任关系,该策略为 NetScaler ADM 提供在您的 AWS 帐户上执行操作的权限。
在AWS中,单击“服务”。在左侧导航窗格中,选择IAM > 角色,然后单击创建角色。
您正在将您的 AWS 帐户与 NetScaler ADM 中的 AWS 帐户关联起来。因此,请选择另一个 AWS 帐户,允许 NetScaler ADM 在您的 AWS 帐户中执行操作。
输入 12 位数的 NetScaler ADM AWS 帐户 ID。Citrix ID 为 835822366011。您现在可以将外部 ID 留空。稍后您必须编辑 IAM 角色。指定 NetScaler ADM 在 NetScaler ADM 中创建云访问配置文件期间提供的外部 ID。
- 单击权限。
- 在附加权限策略页中,单击创建策略。
您可以在可视化编辑器中或使用 JSON 创建和编辑策略。
以下框中提供了 Citrix 对 NetScaler ADM 的权限列表:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "tag:GetResources", "tag:TagResources", "tag:UntagResources", "tag:getTagKeys", "tag:getTagValues", "ec2:DescribeInstances", "ec2:UnmonitorInstances", "ec2:MonitorInstances", "ec2:CreateKeyPair", "ec2:ResetInstanceAttribute", "ec2:ReportInstanceStatus", "ec2:DescribeVolumeStatus", "ec2:StartInstances", "ec2:DescribeVolumes", "ec2:UnassignPrivateIpAddresses", "ec2:DescribeKeyPairs", "ec2:CreateTags", "ec2:ResetNetworkInterfaceAttribute", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DeleteNetworkInterface", "ec2:RunInstances", "ec2:StopInstances", "ec2:AssignPrivateIpAddresses", "ec2:DescribeVolumeAttribute", "ec2:DescribeInstanceCreditSpecifications", "ec2:CreateNetworkInterface", "ec2:DescribeImageAttribute", "ec2:AssociateAddress", "ec2:DescribeSubnets", "ec2:DeleteKeyPair", "ec2:DisassociateAddress", "ec2:DescribeAddresses", "ec2:DeleteTags", "ec2:RunScheduledInstances", "ec2:DescribeInstanceAttribute", "ec2:DescribeRegions", "ec2:DescribeDhcpOptions", "ec2:GetConsoleOutput", "ec2:DescribeNetworkInterfaces", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaceAttribute", "ec2:ModifyInstanceAttribute", "ec2:DescribeInstanceStatus", "ec2:ReleaseAddress", "ec2:RebootInstances", "ec2:TerminateInstances", "ec2:DetachNetworkInterface", "ec2:DescribeIamInstanceProfileAssociations", "ec2:DescribeTags", "ec2:AllocateAddress", "ec2:DescribeSecurityGroups", "ec2:DescribeHosts", "ec2:DescribeImages", "ec2:DescribeVpcs", "ec2:AttachNetworkInterface", "ec2:AssociateIamInstanceProfile", "ec2:DescribeAccountAttributes", "ec2:DescribeInternetGateways", "ec2:GetEbsEncryptionByDefault", "kms:CreateGrant", "kms:DescribeKey", "kms:Decrypt", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptFrom", "kms:ReEncryptTo" ], "Resource": "\*", "Effect": "Allow", "Sid": "VisualEditor0" }, { "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateServiceLinkedRole" ], "Resource": "\*", "Effect": "Allow", "Sid": "VisualEditor1" }, { "Action": [ "route53:CreateHostedZone", "route53:CreateHealthCheck", "route53:GetHostedZone", "route53:ChangeResourceRecordSets", "route53:ChangeTagsForResource", "route53:DeleteHostedZone", "route53:DeleteHealthCheck", "route53:ListHostedZonesByName", "route53:GetHealthCheckCount" "route53:ListResourceRecordSets", "route53.AssociateVPCWithHostedZone", ], "Resource": "\*", "Effect": "Allow", "Sid": "VisualEditor2" }, { "Action": [ "iam:ListInstanceProfiles", "iam:ListAttachedRolePolicies", "iam:SimulatePrincipalPolicy", "iam:SimulatePrincipalPolicy" ], "Resource": "\*", "Effect": "Allow", "Sid": "VisualEditor3" }, { "Action": [ "ec2:ReleaseAddress", "elasticloadbalancing:DeleteLoadBalancer", "ec2:DescribeAddresses", "elasticloadbalancing:CreateListener", "elasticloadbalancing:CreateLoadBalancer", "elasticloadbalancing:RegisterTargets", "elasticloadbalancing:CreateTargetGroup", "elasticloadbalancing:DeregisterTargets", "ec2:DescribeSubnets", "elasticloadbalancing:DeleteTargetGroup", "elasticloadbalancing:ModifyTargetGroupAttributes", "elasticloadbalancing:DescribeLoadBalancers", "ec2:AllocateAddress" ], "Resource": "*", "Effect": "Allow", "Sid": "VisualEditor4" } ] }
- 复制并粘贴 JSON 选项卡中的权限列表,然后单击查看策略。
在“查看策略”页中,键入策略的名称,输入描述,然后单击“创建策略”。
注意
请确保名称以“Citrix-ADM-”开头。
在创建角色页面中,输入角色的名称。
注意:
确保角色名称以“Citrix-ADM-开头。“
为 NetScaler ADM 创建的 ADC 创建 IAM 实体:
使用 IAM 策略创建 IAM 角色,该策略为 ADC 提供对您的 AWS 帐户执行操作的权限。此角色附加到将由 NetScaler ADM 创建的 ADC 实例,从而使 ADC 能够访问您的帐户。
- 在AWS中,单击“服务”。在左侧导航窗格中,选择IAM > 角色,然后单击创建角色。
同样,通过提供以“Citrix-ADC”开头的不同名称,为 NetScaler 实例创建配置文件。
确保您选择AWS 服务 > EC2,
在附加权限策略页中,单击创建策略。
您可以在可视化编辑器中或使用 JSON 创建和编辑策略。
以下框中提供了 Citrix 对 NetScaler 实例的权限列表:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "iam:GetRole", "iam:SimulatePrincipalPolicy", "autoscaling:\*", "sns:\*", "sqs:\*", "cloudwatch:\*", "ec2:AssignPrivateIpAddresses", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DetachNetworkInterface", "ec2:AttachNetworkInterface", "ec2:StartInstances", "ec2:StopInstances" ], "Resource": "*" } ] }
注册 DNS 域
确保您已注册用于托管应用程序的 DNS 域。
评估您的网络中所需的弹性 IP (EIP) 数量。
所需的 EIP 数量因您部署的是基于 DNS 的自动扩缩还是基于 NLB 的自动扩缩而有所不同。要增加 EIP 数量,请使用 AWS 创建案例。
- 对于基于 DNS 的自动扩缩,每个可用区所需的 EIP 数量等于应用程序数量乘以您要在 AutoScale 组中配置的最大 VPX 实例数。
- 对于基于活检的自动扩展,所需的 EIP 数等于应用程序数乘以部署应用程序的可用区数。
评估实例限制要求:
评估实例限制时,请确保您还考虑到 NetScaler 实例的空间要求。
设置 NetScaler ADM 组件
在 NetScaler ADM 中自动扩展 NetScaler VPX 实例之前,请在 AWS 中执行以下任务:
在 AWS 上配置 NetScaler ADM 代理
NetScaler ADM 代理作为 NetScaler ADM 与数据中心或云中发现的实例之间的中介工作。
导航到基础结构 > 实例 > 代理。
点击设置。
选择AWS,然后单击“下一步”。
在“云参数”选项卡中,指定以下内容:
名称-指定 NetScaler ADM 代理名称。
站点- 选择您创建的用于预配代理和 NetScaler VPX 实例的站点。
云访问配置文件-从列表中选择云访问配置文件。
可用区-选择要在其中创建 AutoScale 组的区域。根据您选择的云访问配置文件,会填充特定于该配置文件的可用区。
安全组-安全组控制 NetScaler 代理中的入站和出站流量。您可以为要控制的传入和传出流量创建规则。
子网-选择要在其中配置代理的管理子网。
标签-键入自动缩放组标签的键值对。标签由区分大小写的键值对组成。这些标签使您能够轻松地组织和识别自动缩放组。这些标签同时应用于 AWS 和 NetScaler ADM。
单击完成。
或者,您可以从 AWS 市场安装 NetScaler ADM 代理。有关更多信息,请参阅在 AWS 上安装 NetScaler ADM 代理。
创建站点
在 NetScaler ADM 中创建一个站点,然后添加与您的 AWS 角色关联的 VPC 的详细信息。
- 在 NetScaler ADM 中,导航到基础结构 > 站点。
- 单击添加。
- 选择服务类型为 AWS 并启用“使用现有 VPC 作为站点”。
- 选择云访问配置文件。
如果字段中不存在云访问配置文件,请单击“添加”以创建配置文件。
- 在创建云访问配置文件页面中,键入您要用来访问 AWS 的配置文件的名称。
- 键入与您在 AWS 中创建的角色相关联的 ARN。
- 复制自动生成的外部 ID以更新 IAM 角色。
单击创建。
再次单击创建以创建站点。
使用自动生成的外部 ID更新 AWS 中的 IAM 角色:
登录您的 AWS 帐户并导航到要更新的角色。
在“信任关系”选项卡中,单击“编辑信任关系”,然后在
Statement
块中添加以下条件:"Condition": { "StringEquals": { "sts:ExternalId": "
" } }
在 AWS 中为 IAM 角色启用外部 ID 允许您连接到第三方帐户。外部 ID 提高了角色的安全性。
与您在 AWS 中的 IAM 角色关联的 VPC 的详细信息(例如区域、VPC ID、名称和 CIDR 块)将导入到 NetScaler ADM 中。
将该站点连接到 NetScaler ADM 代理
在 NetScaler ADM 中,导航到基础结构 > 实例 > 代理。
选择要为其连接站点的代理。
单击“附加站点”。
从列表中选择要附加的站点。
单击保存。
步骤 1:在 NetScaler ADM 中初始化自动缩放配置
- 在 NetScaler ADM 中,导航到基础结构 > 公有云 > 自动扩展组。
- 单击“添加”以创建自动缩放组。将出现“创建自动缩放组”页面。
输入以下详细信息。
- 名称。键入 AutoScale 组的名称。
- 站点。选择您创建的站点,以便在 AWS 上配置 NetScaler VPX 实例。
云访问配置文件。选择云访问配置文件。
注意
如果字段中不存在云访问配置文件,请单击“添加”以创建配置文件。
- 键入与您在 AWS 中创建的角色相关联的 ARN。
- 键入您在 AWS 中创建身份和访问管理 (IAM) 角色时提供的外部 ID。根据您选择的云访问配置文件,将填充可用区。
NetScaler 配置文件。从列表中选择 ADC 配置文件。NetScaler ADM 将在需要登录实例时使用此配置文件。
流量分配模式。使用 NLB 进行负载平衡选项被选为默认流量分配模式。如果应用程序正在使用 UDP 流量,则使用 AWS route53 选择 DNS。
注意设置自动缩放配置
后,无法添加新的可用区或者无法删除现有可用区。
启用 AutoScale 组。启用或禁用 ASG 组的状态。默认情况下,此选项处于启用状态。如果禁用此选项,则不会触发自动缩放。
可用区。选择要在其中创建自动缩放组的区域。根据您选择的云访问配置文件,会填充特定于该配置文件的可用区。
标签。键入自动缩放组标记的键值对。标签由区分大小写的键值对组成。这些标签使您能够轻松地组织和识别自动缩放组。这些标签同时应用于 AWS 和 NetScaler ADM。
- 单击下一步。
步骤 2:配置自动缩放参数
- 在AutoScale 参数选项卡中,输入以下详细信息。
- 选择以下一个或多个阈值参数,必须监视其值才能触发向外扩展或扩展。
- 启用 CPU 使用率阈值:根据 CPU 使用率监视指标。
- 启用内存使用阈值:根据内存使用情况监视指标。
启用吞吐量阈值:根据吞吐量监视指标。
注意
- 默认最小阈值限制为 30,最大阈值限制为 70。但是,您可以更改修改限制。
- 最小阈值限制必须等于或小于最大阈值限制的一半。
- 可以选择多个阈值参数进行监视。在这种情况下,如果至少有一个阈值参数高于最大阈值,则会触发缩放。但是,只有当所有阈值参数都低于其正常阈值时,才会触发放入。
保留备用节点以加快向外扩展:此选项有助于实现更快的横向扩展。NetScaler ADM在横向扩展操作发生之前预置一个备用节点并将其关闭。当 AutoScale 组执行向外扩展操作时,NetScaler ADM 会启动已配置的备用节点。因此,它减少了横向扩展所需的时间。
- 最小实例。选择必须为此 AutoScale 组配置的最小实例数量。
- 默认情况下,实例的最小数量等于选定的区域数。您可以将最小实例数递增至区域数的倍数。
- 例如,如果可用区数为 4,则默认情况下最小实例为 4。您可以将最小实例增加 8、12、16。
- 最大实例数。选择必须为此 AutoScale 组配置的最大实例数。
- 最大实例数必须大于或等于最小实例值。可配置的最大实例数等于可用区数乘以 32 个。
- 最大实例数 = 可用区数 x 32
- 漏极连接超时(分钟)。选择漏极连接超时周期。在扩展期间,一旦选择了要取消置备的实例,NetScaler ADM 将从处理到 AutoScale 组的新连接中删除该实例,并等到指定的时间过期后才取消置备。此选项允许在取消置备前将与此实例的现有连接耗尽。
- 冷却时间(分钟)。选择冷却时间。在横向扩展期间,冷却时间是指在向外扩展发生后必须停止统计数据评估的时间。这种横向扩展可确保AutoScale组实例的有机增长,在做出下一个扩展决策之前,允许当前实例集的当前流量保持稳定和平均值。
- DNS 生存时间(秒)。选择将数据包设置为在网络内部存在的时间长度(以秒为单位),然后才被路由器丢弃。此参数仅在流量分配模式为使用 AWS route53 的 DNS 时适用。
- 观看时间(分钟)。选择监视时间持续时间。要进行缩放,必须突破比例参数的阈值的时间。如果在此指定时间内收集的所有样本上超过阈值,则会进行缩放。
- 单击下一步。
步骤 3:Provisioning 用于置备 NetScaler 实例的许可证
选择以下模式之一以授权属于自动扩展组的 NetScaler 实例:
使用 NetScaler ADM:在 Provisioning NetScaler 实例时,自动扩展组会从 NetScaler ADM 中签出许可证。
使用 AWS 云:“从云端分配”选项使用 AWS 市场上提供的 NetScaler 产品许可证。在 Provisioning NetScaler 实例时,自动扩展组使用市场中的许可证。
如果您选择使用 AWS 市场中的许可证,请在“预配参数”选项卡中指定产品或许可证。
有关更多信息,请参阅许可要求。
使用来自 NetScaler ADM 的许可证
在“许可证”选项卡中,选择“从 NetScaler ADM 中分配”。
在许可证类型中,从列表中选择以下选项之一:
带宽许可证:您可以从“带宽许可证类型”列表中选择以下选项之一:
池容量:指定要为 AutoScale 组中的每个新实例分配的容量。
从公用池中,AutoScale 组中的每个 ADC 实例签出一个实例许可证,并且只指定了相同数量的带宽。
VPX 许可证:预配 NetScaler VPX 实例时,实例将从 NetScaler ADM 中签出许可证。
虚拟 CPU 许可证:配置的 NetScaler VPX 实例签出许可证,具体取决于在 AutoScale 组中运行的活跃 CPU 的数量。
注意:
删除或销毁预配置的实例后,应用的许可证将返回到 NetScaler ADM 许可证池。在下一次 AutoScale 期间,这些许可证可以重复用于预配新实例。
在许可证版本中,选择许可证版本。自动扩展组使用指定版本来置备实例。
单击下一步。
步骤 4:配置云参数
在“云参数”选项卡中,输入以下详细信息。
IAM 角色:选择您在 AWS 中创建的 IAM 角色。IAM 角色是一种 AWS 身份,其权限策略可确定身份在 AWS 中可以执行和不能执行的操作。
实例类型:选择 EC2 实例类型。
注意
默认情况下,所选产品的推荐实例类型是自动填充的。
超线程:默认情况下,此选项处于启用状态。如果您禁用此选项,ADC 实例将在每个 CPU 内核中配置一个线程。
AWS AMI ID:输入特定于您所选区域的 AMI ID。
源服务器 CIDR:当应用程序服务器和 ADC 实例位于不同的 VPC 上时,请提供您拥有应用程序服务器的 VPC 的 CIDR 块。
重要
在应用程序服务器 VPC 和 ADC 实例 VPC 之间设置 AWS Transit Gateway 或 VPC 对等。
- 对于配置了 ADC 实例的 VPC,更新服务器子网的路由表和安全组。
- 对于应用程序服务器所在的 VPC,更新应用程序服务器的路由表和安全组。
有关更多信息,请参阅AWS Transit Gateway和VPC 对等。
每个节点的服务器子网中的IP:为安全组选择每个节点的服务器子网中的 IP 地址数。
在此选项卡中,您还可以指定和配置所需的 NIC。为每个 NIC 选择安全组和子网。
单击完成。
将出现一个进度窗口,其中显示创建 AutoScale 组的状态。创建和配置 AutoScale 组可能需要几分钟的时间。
步骤 5:为自动缩放组配置应用程序
在 NetScaler ADM 中,导航到基础结构 > 公有云 > 自动扩展组。
选择您创建的 AutoScale 组,然后单击“配置”。
在配置应用程序中,指定以下详细信息:
应用程序名称-指定应用程序的名称。
访问类型-您可以将 NetScaler ADM 自动缩放解决方案用于外部和内部应用程序。选择所需的应用程序访问类型。
FQDN 类型-选择分配域名和区域名称的模式。
如果要手动指定,请选择用户定义。要自动分配域名和区域名称,请选择自动生成。
域名-指定应用程序的域名。仅当您选择用户定义的 FQDN 类型时,此选项才适用。
域的区域-从列表中选择应用程序的区域名称。仅当您选择用户定义的 FQDN 类型时,此选项才适用。
此域名和区域名称将重定向到 AWS 中的虚拟服务器。例如,如果您在中托管应用程序
app.example.com
,则app
为域名和example.com
区域名称。协议-从列表中选择协议类型。配置的应用程序根据所选协议类型接收流量。
端口-指定端口值。指定的端口用于在应用程序和 AutoScale 组之间建立通信。
自动将 HTTP 流量重定向到 HTTPS-选择此选项可将安全流量接收到应用程序。指定要重定向的 HTTP 端口。
ADC 配置模式-选择要如何配置应用程序的模式。您可以选择样书或 ADC CLI 命令。
如果要使用样书配置应用程序,请在确认窗口中选择是。
注意
:如果将来要修改以下详细信息,请更改应用程序的访问类型:
- FQDN 类型
- 域名
- 域名的区域
有关使用样书或 CLI 命令的更多信息,请参阅为自动定量组创建应用程序配置。