谷歌云平台上的 NetScaler VPX 实例的 VIP 扩展支持
NetScaler 设备位于客户端和服务器之间,因此客户端请求和服务器响应都通过它。在典型安装中,设备上配置的虚拟服务器提供客户端用于访问设备后应用程序的连接点。部署所需的公共虚拟 IP (VIP) 地址数量因情况而异。
GCP 架构限制实例上的每个接口连接到不同的 VPC。GCP 上的 VPC 是子网的集合,每个子网可以跨区域的多个可用区。此外,GCP 还施加了以下限制:
- 公共 IP 地址数量与网卡数量之间存在 1:1 映射。每个网卡只能分配一个公共 IP 地址。
- 在更高容量的实例类型上,最多只能连接 8 个网卡。
例如,n1-standard-2 实例只能有 2 个网卡,并且可添加的公共 VIP 数量限制为 2 个。有关更多信息,请参阅 VPC 资源配额。
为了在 NetScaler VPX 实例上实现更高规模的公共虚拟 IP 地址,您可以将 VIP 地址配置为实例元数据的一部分。NetScaler VPX 实例内部使用 GCP 提供的转发规则来实现 VIP 扩展。NetScaler VPX 实例还为配置的 VIP 提供高可用性。 在将 VIP 地址配置为元数据的一部分后,您可以使用用于创建转发规则的相同 IP 配置 LB 虚拟服务器。因此,我们可以使用转发规则来缓解在 GCP 上的 NetScaler VPX 实例中使用公共 VIP 地址时在规模方面的限制。
有关转发规则的更多信息,请参阅 转发规则概述。
有关高可用性 (HA) 的更多信息,请参阅 高可用性。
注意事项
- Google 会对每个虚拟 IP 转发规则收取额外费用。实际费用取决于创建的条目数量。相关费用可在 Google 定价文档中找到。
- 转发规则仅适用于公共 VIP。当部署需要将私有 IP 地址用作 VIP 时,您可以使用别名 IP 地址。
- 您只能为需要 LB 虚拟服务器的协议创建转发规则。VIP 可以即时创建、更新或删除。您还可以添加具有相同 VIP 地址但使用不同协议的新负载均衡虚拟服务器。
开始之前
- NetScaler VPX 实例必须部署在谷歌云平台上。
-
外部 IP 地址必须预留。有关详细信息,请参阅 预留静态外部 IP 地址。
-
确保您的 GCP 服务帐号具有以下 IAM 权限:
REQUIRED_IAM_PERMS = [ "compute.addresses.list", "compute.addresses.get", "compute.addresses.use", "compute.forwardingRules.create", "compute.forwardingRules.delete", "compute.forwardingRules.get", "compute.forwardingRules.list", "compute.instances.use", "compute.subnetworks.use", "compute.targetInstances.create" "compute.targetInstances.get" "compute.targetInstances.use", ] <!--NeedCopy--> -
为您的 GCP 项目启用 云资源管理器 API。
-
如果您在独立 VPX 实例上使用 VIP 扩展,请确保您的 GCP 服务帐号具有以下 IAM 权限:
REQUIRED_IAM_PERMS = [ "compute.addresses.list", "compute.addresses.get", "compute.addresses.use", "compute.forwardingRules.create", "compute.forwardingRules.delete", "compute.forwardingRules.get", "compute.forwardingRules.list", "compute.instances.use", "compute.subnetworks.use", "compute.targetInstances.create", "compute.targetInstances.list", "compute.targetInstances.use", ] <!--NeedCopy--> -
如果您在高可用性模式下使用 VIP 扩展,请确保您的 GCP 服务帐号具有以下 IAM 权限:
REQUIRED_IAM_PERMS = [ "compute.addresses.get", "compute.addresses.list", "compute.addresses.use", "compute.forwardingRules.create", "compute.forwardingRules.delete", "compute.forwardingRules.get", "compute.forwardingRules.list", "compute.forwardingRules.setTarget", "compute.instances.use", "compute.instances.get", "compute.instances.list", "compute.instances.setMetadata", "compute.subnetworks.use", "compute.targetInstances.create", "compute.targetInstances.list", "compute.targetInstances.use", "compute.zones.list", ] <!--NeedCopy-->注意:
在高可用性模式下,如果您的服务帐号没有所有者或编辑者角色,则必须将服务帐号用户角色添加到您的服务帐号。
为 NetScaler VPX 实例上的 VIP 扩展配置外部 IP 地址
- 在 Google Cloud Console 中,导航到虚拟机实例页面。
- 创建新的虚拟机实例或使用现有实例。
- 单击实例名称。在虚拟机实例详细信息页面上,单击编辑。
- 通过输入以下内容更新自定义元数据:
- Key = vips
-
值 = 以以下 JSON 格式提供值:
{ “外部预留 IP 的名称”: [list of protocols], }
GCP 支持以下协议:
- AH
- ESP
- 互联网控制消息协议
- SCT
- TCP
- UDP

有关详细信息,请参阅 自定义元数据。
自定义元数据示例:
{ “external-ip1-name”:[“TCP”, “UDP”], “external-ip2-name”:[“ICMP”, “AH”] }
在此示例中,NetScaler VPX 实例会为每个 IP 和协议对内部创建一个转发规则。元数据条目映射到转发规则。此示例可帮助您了解为元数据条目创建了多少个转发规则。
创建了四个转发规则,如下所示:
- external-ip1-name and TCP
- 外部 IP1 名称 和 用户数据报协议
- 外部IP2名称 和 ICMP
- 外部IP2名称 和 AH
注意:
在 HA 模式下,您必须仅在主实例上添加自定义元数据。在故障转移时,自定义元数据会同步到新的主实例。
- 单击 保存。
在 NetScaler VPX 实例上设置具有外部 IP 地址的负载平衡虚拟服务器
步骤 1。添加负载平衡虚拟服务器。
-
导航到 配置 > 流量管理 > 负载平衡 > 虚拟服务器 > 添加。

-
为名称、协议、IP 地址类型 (IP 地址)、IP 地址(作为 VIP 添加到 ADC 的转发规则的外部 IP 地址)和端口添加所需值,然后单击 确定。

步骤 2。添加服务或服务组。
- 导航到 配置 > 流量管理 > 负载平衡 > 服务 > 添加。
-
为服务名称、IP 地址、协议和端口添加所需值,然后单击 确定。

步骤 3。将服务或服务组绑定到负载平衡虚拟服务器。
- 导航到 配置 > 流量管理 > 负载平衡 > 虚拟服务器。
- 选择在 步骤 1 中配置的负载平衡虚拟服务器,然后单击 编辑。
-
在 服务和服务组 页面中,单击 无负载平衡虚拟服务器服务绑定。

-
选择在 步骤 3 中配置的服务,然后单击 绑定。

- 保存此配置。