AutoScale 配置
NetScaler 控制台管理 AWS 中的所有 NetScaler VPX 群集。NetScaler 控制台使用云访问配置文件访问 AWS 资源。
必备条件
本节介绍在配置自动扩展 NetScaler VPX 实例之前必须在 AWS 和 NetScaler 控制台中完成的前提条件。
本文档假定以下情况:
- 您已拥有 AWS 帐户。
- 您已创建具有所有管理权限的身份和访问管理 (IAM) 用户。
设置 AWS 组件
在 NetScaler 控制台中自动扩展 NetScaler VPX 实例之前,在 AWS 中执行以下任务:
提示
您可以使用 AWS CloudFormation 模板 自动执行 NetScaler 自动扩展的 AWS 先决条件步骤。
有关如何创建 VPC、子网和安全组的更多信息,请参阅 AWS 文档。
创建子网
在您的 VPC 中创建三个子网,分别用于管理、客户端和服务器连接。在 VPC 中为每个子网定义的范围内指定 IPv4 CIDR 块。指定希望子网驻留的可用区。在服务器所在的每个可用区中创建所有三个子网。
-
管理. 虚拟私有云 (VPC) 中专门用于管理的现有子网。NetScaler 必须联系 AWS 服务并要求Internet访问。配置 NAT Gateway 并添加路由表条目以允许从此子网访问 Internet。
注
意确保在 NetScaler 控制台中打开
27000
和7279
端口。这些端口用于从 NetScaler 控制台中查看 NetScaler 许可。有关更多信息,请参阅 端口。 -
客户端。虚拟私有云 (VPC) 中专用于客户端流量的现有子网。通常情况下,NetScaler 从Internet通过公有子网接收应用程序的客户端流量。将客户端子网与具有通往 Internet Gateway 的路由表相关联。此子网允许 NetScaler 接收来自互联网的应用程序流量。
-
服务器。虚拟私有云 (VPC) 中专用于服务器端流量的现有子网。NetScaler 通过此子网将流量发送到后端应用服务器。接收应用程序流量的所有应用程序服务器都必须存在于此子网中。如果服务器在此子网之外,则应用程序流量将通过子网的网关接收。
创建安全组
创建安全组以控制 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
确保安全组允许代理访问 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 组中的 NetScaler 实例从 NetScaler 控制台中查看许可,请确保满足以下条件:
- 所需的 NetScaler 许可可在 NetScaler 控制台中找到。
- NetScaler VPX 客户授权 产品已订阅。
创建 IAM 角色
创建 IAM 实体,向 NetScaler 控制台和 NetScaler 实例授予对您的 AWS 帐户执行操作的权限。NetScaler 控制台会在您的 AWS 帐户中创建或删除以下内容:
- NetScaler EC2 实例
- 云负载平衡器
- Route53
注
意:确保角色名称以“Citrix-ADM”开头,实例配置文件名称以“Citrix-ADC”开头。
为 NetScaler 控制台创建 IAM 实体:
创建 IAM 角色,这样您就可以使用 IAM 策略在 AWS 帐户和 Citrix 的 AWS 帐户之间建立信任关系,该策略为 NetScaler 控制台提供对您的 AWS 帐户执行操作的权限。
-
在 AWS 中,单击服务。在左侧导航窗格中,选择 IAM > 角色,然后单击 创建角色。
-
您正在将您的 AWS 帐户与 NetScaler 控制台中的 AWS 帐户关联起来。因此,选择 另一个 AWS 帐户 以允许 NetScaler 控制台在您的 AWS 帐户中执行操作。
-
输入 12 位数的 NetScaler 控制台 AWS 帐户 ID。Citrix ID 为 835822366011。您现在可以将外部 ID 留空。稍后您必须编辑 IAM 角色。在 NetScaler 控制台中创建云访问配置文件期间指定 NetScaler 控制台提供的外部 ID。
- 单击权限。
- 在 附加权限策 略页中,单击 创建策略。
-
您可以在可视化编辑器中或使用 JSON 创建和编辑策略。
下框中提供了适用于 NetScaler 控制台的 Citrix 权限列表:
{ "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" } ] } <!--NeedCopy-->
- 复制并粘贴 JSON 选项卡中的权限列表,然后单击 查看策略。
-
在“查看策略”页中,键入策略的名称,输入描述,然后单击“创建策略”。
注意
请确保名称以“Citrix-ADM-”开头。
-
在 创建角色 页面中,输入角色的名称。
注意:
确保角色名称以“Citrix-ADM-开头。
为 NetScaler Console创建的 NetScaler 实例创建 IAM 实体:
使用 IAM 策略创建 IAM 角色,该策略为 NetScaler 提供对您的 AWS 帐户执行操作的权限。此角色附加到将由 NetScaler 控制台创建的 NetScaler 实例,从而使 NetScaler 实例能够访问您的帐户。
- 在 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": "*"
}
]
}
<!--NeedCopy-->
注册 DNS 域
确保您已注册用于托管应用程序的 DNS 域。
评估您的网络中所需的弹性 IP (EIP) 数量。
所需的 EIP 数量因您部署的是基于 DNS 的自动扩缩还是基于 NLB 的自动扩缩而有所不同。要增加 EIP 数量,请使用 AWS 创建案例。
- 对于基于 DNS 的自动扩缩,每个可用区所需的 EIP 数量等于应用程序数量乘以您要在 AutoScale 组中配置的最大 VPX 实例数。
- 对于基于 NLB 的自动扩展,所需的 EIP 数等于应用程序数乘以部署应用程序的可用区数。
评估实例限制要求:
评估实例限制时,请确保您还考虑到 NetScaler 实例的空间要求。
设置 NetScaler 控制台组件
在 NetScaler 控制台中自动扩展 NetScaler VPX 实例之前,在 AWS 中执行以下任务:
- 在AWS上配置 NetScaler 代理。
- 创建一个站点。
- 将该站点连接到 NetScaler 代理。
在 AWS 上配置 NetScaler 代理
该代理充当 NetScaler 控制台与在数据中心或云端发现的实例之间的中介。
-
导航到 基础结构 > 实例 > 代理。
-
点击 设置。
-
选择 AWS ,然后单击“下一步”。
-
在“云参数”选项卡中,指定以下内容:
-
名称 -指定代理名称。
-
站点 - 选择您创建的用于预配代理和 NetScaler VPX 实例的站点。
-
云访问配置文件 -从列表中选择云访问配置文件。
-
可用区 -选择要在其中创建 AutoScale 组的区域。根据您选择的云访问配置文件,会填充特定于该配置文件的可用区。
-
安全组 -安全组控制 NetScaler 代理中的入站和出站流量。您可以为要控制的传入和传出流量创建规则。
-
子网 -选择要在其中配置代理的管理子网。
-
标签 -键入 AutoScale 组标签的键值对。标签由区分大小写的键值对组成。这些标签使您能够轻松地组织和识别 AutoScale 组。这些标签适用于 AWS 和 NetScaler 控制台。
-
-
单击完成。
或者,您可以从 AWS 市场安装代理。有关更多信息,请参见 在 AWS 上安装 NetScaler 代理。
创建站点
在 NetScaler 控制台中创建一个站点,然后添加与您的 AWS 角色关联的 VPC 的详细信息。
- 在 NetScaler 控制台中,导航 到基础架构 > 站点。
- 单击添加。
- 选择服务类型为 AWS 并启用“使用现有 VPC 作为站点”。
- 选择云访问配置文件。
-
如果字段中不存在云访问配置文件,请单击“添加”以创建配置文件。
- 在 创建云访问配置文件 页面中,键入您要用来访问 AWS 的配置文件的名称。
- 键入与您在 AWS 中创建的角色相关联的 ARN。
- 复制自动生成的 外部 ID 以更新 IAM 角色。
-
单击创建。
-
再次单击 创建 以创建站点。
-
使用自动生成的 外部 ID更新 AWS 中的 IAM 角色:
-
登录您的 AWS 帐户并导航到要更新的角色。
-
在“信任关系”选项卡中,单击“编辑信任关系”,然后在
Statement
块中添加以下条件:"Condition": { "StringEquals": { "sts:ExternalId": "<External-ID>" } } <!--NeedCopy-->
在 AWS 中为 IAM 角色启用外部 ID 允许您连接到第三方帐户。外部 ID 提高了角色的安全性。
与您在 AWS 中的 IAM 角色关联的 VPC 的详细信息,例如区域、VPC ID、名称和 CIDR 区块,将导入到 NetScaler 控制台中。
-
将站点连接到 NetScaler 代理
-
在 NetScaler 控制台中,导航 到基础架构 > 实例 > 代理。
-
选择要为其连接站点的代理。
-
单击“附加站点”。
-
从列表中选择要附加的站点。
-
单击保存。
第 1 步:在 NetScaler 控制台中初始化 Autoscale 配置
- 在 NetScaler 控制台中,导航到基础结构 > 公有云 > AutoScale 组。
- 单击“添加”以创建 AutoScale 组。将出现“创建 AutoScale 组”页面。
-
输入以下详细信息。
- 名称。键入 AutoScale 组的名称。
- 站点。选择您创建的站点,以便在 AWS 上配置 NetScaler VPX 实例。
-
云访问配置文件。选择云访问配置文件。
注意
如果字段中不存在云访问配置文件,请单击“添加”以创建配置文件。
- 键入与您在 AWS 中创建的角色相关联的 ARN。
- 键入您在 AWS 中创建身份和访问管理 (IAM) 角色时提供的外部 ID。根据您选择的云访问配置文件,将填充可用区。
-
NetScaler 配置文件。从列表中选择 NetScaler 配置文件。每当需要登录到实例时,NetScaler 控制台都会使用此配置文件。
-
流量分配模式。 使用 NLB 进行负载平衡 选项被选为默认流量分配模式。如果应用程序正在使用 UDP 流量,则 使用 AWS route53 选择 DNS。
注意设置自动缩放配置
后,无法添加新的可用区或者无法删除现有可用区。
-
启用 AutoScale 组。启用或禁用 ASG 组的状态。默认情况下,此选项处于启用状态。如果禁用此选项,则不会触发自动缩放。
-
可用区。选择要在其中创建自动缩放组的区域。根据您选择的云访问配置文件,会填充特定于该配置文件的可用区。
-
标签。键入自动缩放组标记的键值对。标签由区分大小写的键值对组成。这些标签使您能够轻松地组织和识别 AutoScale 组。这些标签适用于 AWS 和 NetScaler 控制台。
- 单击下一步。
步骤 2:配置 AutoScale 参数
- 在 AutoScale 参数 选项卡中,输入以下详细信息。
- 选择以下一个或多个阈值参数,必须监视其值才能触发向外扩展或扩展。
- 启用 CPU 使用率阈值:根据 CPU 使用率监视指标。
- 启用内存使用量阈值:根据内存使用情况监视指标。
-
启用吞吐量阈值:根据吞吐量监视指标。
注意
- 默认最小阈值限制为 30,最大阈值限制为 70。但是,您可以更改修改限制。
- 最小阈值限制必须等于或小于最大阈值限制的一半。
- 可以选择多个阈值参数进行监视。在这种情况下,如果至少有一个阈值参数高于最大阈值,则会触发缩放。但是,只有当所有阈值参数都低于其正常阈值时,才会触发放入。
-
保留备用节点以加快向外扩展: 此选项有助于实现更快的横向扩展。NetScaler 控制台在横向扩展操作发生之前预置备用节点并将其关闭。当 Autoscale 组执行向外扩展操作时,NetScaler 控制台会启动已配置的备用节点。因此,它减少了横向扩展所需的时间。
- 最小实例。选择必须为此 AutoScale 组配置的最小实例数量。
- 默认情况下,实例的最小数量等于选定的区域数。您可以将最小实例数递增至区域数的倍数。
- 例如,如果可用区数为 4,则默认情况下最小实例为 4。您可以将最小实例增加 8、12、16。
- 最大实例数。选择必须为此 AutoScale 组配置的最大实例数。
- 最大实例数必须大于或等于最小实例值。可配置的最大实例数等于可用区数乘以 32 个。
- 最大实例数 = 可用区数 x 32
- 漏极连接超时(分钟)。选择漏极连接超时周期。在缩容期间,一旦选择了要取消配置的实例,NetScaler 控制台就会将该实例从处理与 Autoscale 组的新连接中移除,并等到指定的时间到期后再取消配置。此选项允许在取消置备前将与此实例的现有连接耗尽。
- 冷却时间(分钟)。选择冷却时间。在横向扩展期间,冷却时间是指在向外扩展发生后必须停止统计数据评估的时间。这种横向扩展可确保AutoScale组实例的有机增长,在做出下一个扩展决策之前,允许当前实例集的当前流量保持稳定和平均值。
- DNS 生存时间(秒)。选择将数据包设置为在网络内部存在的时间长度(以秒为单位),然后才被路由器丢弃。此参数仅在流量分配模式为使用 AWS route53 的 DNS 时适用。
- 观看时间(分钟)。选择监视时间持续时间。要进行缩放,必须突破比例参数的阈值的时间。如果在此指定时间内收集的所有样书上超过阈值,则会进行缩放。
- 单击下一步。
步骤 3:Provisioning 用于置备 NetScaler 实例的许可证
选择以下模式之一以授权属于 AutoScale 组的 NetScaler 实例:
-
使用 NetScaler 控制台:在配置 NetScaler实例时,Autoscale 组会从 NetScaler 控制台中检出许可。
-
使用 AWS 云:“从云端分配”选项使用 AWS 市场上提供的 NetScaler 产品许可证。在预配 NetScaler 实例时,AutoScale 组使用市场中的许可证。
如果您选择使用 AWS 市场中的许可证,请在“预配参数”选项卡中指定产品或许可证。
有关更多信息,请参阅 许可要求。
使用 NetScaler 控制台中的许可
-
在“许可”标签中,选择“从 NetScaler 控制台分配”。
-
在 许可证类型中,从列表中选择以下选项之一:
-
带宽许可证: 您可以从“带 宽许可证类型”列表中选择以下选项之一:
-
池容量: 指定要为 AutoScale 组中的每个新实例分配的容量。
在公共池中,Autoscale 组中的每个 NetScaler 实例都会签出一个实例许可,并且仅指定了尽可能多的带宽。
-
VPX 许可:配置 NetScaler VPX 实例时,该实例将从 NetScaler 控制台签出许可。
-
-
虚拟 CPU 许可证: 配置的 NetScaler VPX 实例签出许可证,具体取决于在 AutoScale 组中运行的活跃 CPU 的数量。
注
意:当预置的实例被移除或销毁时,应用的许可将返回到 NetScaler 控制台许可池。在下一次 AutoScale 期间,这些许可证可以重复用于预配新实例。
-
-
在 许可证版本中,选择许可证版本。AutoScale 组使用指定版本来预配实例。
-
单击下一步。
步骤 4:配置云参数
-
在“云参数”选项卡中,输入以下详细信息。
-
IAM 角色:选择您在 AWS 中创建的 IAM 角色。IAM 角色是一种 AWS 身份,其权限策略可确定身份在 AWS 中可以执行和不能执行的操作。
-
实例类型:选择 EC2 实例类型。
注意
默认情况下,所选产品的推荐实例类型是自动填充的。
-
超线程:默认情况下,此选项处于启用状态。如果禁用此选项,NetScaler 实例将在每个 CPU 内核中配置一个线程。
-
AWS AMI ID:输入特定于您所选区域的 AMI ID。
-
源服务器 CIDR:当应用服务器和 NetScaler 实例位于不同的 VPC 上时,请提供您拥有应用服务器的 VPC 的 CIDR 块。
重要
事项在应用服务器 VPC 和 NetScaler 实例 VPC 之间设置 AWS Transit Gateway 或 VPC 对等关系。
- 对于配置 NetScaler 实例的 VPC,更新服务器子网的路由表和安全组。
- 对于应用程序服务器所在的 VPC,更新应用程序服务器的路由表和安全组。
有关更多信息,请参阅 AWS Transit Gateway 和 VPC 对等。
-
每个节点的服务器子网中的IP:为安全组选择每个节点的服务器子网中的 IP 地址数。
在此选项卡中,您还可以指定和配置所需的 NIC。为每个 NIC 选择 安全组 和 子网 。
-
-
单击完成。
将出现一个进度窗口,其中显示创建 AutoScale 组的状态。创建和配置 AutoScale 组可能需要几分钟的时间。
步骤 5:为 AutoScale 组配置应用程序
-
在 NetScaler 控制台中,导航到基础结构 > 公有云 > AutoScale 组。
-
选择您创建的 AutoScale 组,然后单击“配置”。
-
在 配置应用程序中,指定以下详细信息:
-
应用程序名称 -指定应用程序的名称。
-
访问类型 -您可以将 NetScaler 控制台自动扩展解决方案用于外部和内部应用程序。选择所需的应用程序访问类型。
-
FQDN 类型 -选择分配域名和区域名称的模式。
如果要手动指定,请选择 用户定义。要自动分配域名和区域名称,请选择 自动生成。
-
域名 -指定应用程序的域名。仅当您选择用户定义的 FQDN 类型时,此选项才适用。
-
域的区域 -从列表中选择应用程序的区域名称。仅当您选择用户定义的 FQDN 类型时,此选项才适用。
此域名和区域名称将重定向到 AWS 中的虚拟服务器。例如,如果您在中托管应用程序
app.example.com
,则app
为域名和example.com
区域名称。 -
协议 -从列表中选择协议类型。配置的应用程序根据所选协议类型接收流量。
-
端口 -指定端口值。指定的端口用于在应用程序和 AutoScale 组之间建立通信。
-
自动将 HTTP 流量重定向到 HTTPS -选择此选项可将安全流量接收到应用程序。指定要重定向的 HTTP 端口。
-
NetScaler 配置模式-选择要如何配置应用程序的模式。您可以选择样书或 NetScaler CLI 命令。
如果要使用样书配置应用程序,请在确认窗口中选择 是 。
-
注意
:如果将来要修改以下详细信息,请更改应用程序的访问类型:
- FQDN 类型
- 域名
- 域名的区域
有关使用样书或 CLI 命令的更多信息,请参阅 为 AutoScale 组创建应用程序配置。