GCP 上的 NetScaler VPX 实例支持 VIP 扩展
NetScaler 设备的位置介于客户端与服务器之间,以便客户端请求和服务器响应都能经过该设备。 在典型安装中,在设备上配置的虚拟服务器提供连接点,客户端使用这些连接点来访问位于设备后面的应用程序。 部署所需的公用虚拟 IP (VIP) 地址数量因具体情况而异。
GCP 体系结构限制实例上的每个接口连接到不同的 VPC。 GCP 上的 VPC 是子网的集合,每个子网可以跨地理区域的区域。 此外,GCP 还规定了以下限制:
- 存在公用 IP 地址数量与 NIC 数量的 1:1 映射。 一个 NIC 只能分配一个公用 IP 地址。
- 在容量较高的实例类型上最多只能附加 8 个 NIC。
例如,n1-standard-2 实例只能有 2 个 NIC,可以添加的公用 VIP 限制为 2 个。 有关更多信息,请参阅 VPC 资源配额。
要在 NetScaler VPX 实例上实现更高的公共虚拟 IP 地址规模,您可以将 VIP 地址配置为实例元数据的一部分。 NetScaler VPX 实例在内部使用 GCP 提供的转发规则来实现 VIP 扩展。 NetScaler VPX 实例还为配置的 VIP 提供高可用性。 将 VIP 地址配置为元数据的一部分后,可以使用创建转发规则所用的相同 IP 配置 LB 虚拟服务器。 因此,我们可以使用转发规则来缓解在 GCP 上的 NetScaler VPX 实例上使用公有 VIP 地址时 w.r.t scale 的限制。
有关转发规则的详细信息,请参阅 转发规则概述。
有关 HA 的更多信息,请参阅 高可用性。
注意事项
- Google 会对每个虚拟 IP 转发规则收取一些额外的费用。 实际成本取决于创建的条目数量。 相关费用可以从 Google 定价文档中找到。
- 转发规则仅适用于公用 VIP。 当部署需要专用 IP 地址作为 VIP 时,可以使用别名 IP 地址。
- 只能为需要 LB 虚拟服务器的协议创建转发规则。 VIP 可以即时创建、更新或删除。 还可以添加具有相同 VIP 地址但使用不同协议的新负载平衡虚拟服务器。
开始之前的准备工作
- NetScaler VPX 实例必须部署在 GCP 上。
-
必须保留外部 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 项目启用 Cloud Resource Manager 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 实例上配置外部 IP 地址以进行 VIP 扩展
- 在 Google 云控制台中,导航至 VM Instances(VM 实例)页面。
- 创建新的虚拟机实例或使用现有实例。
- 单击实例名称。 在 虚拟机实例详细信息 页面上,单击 编辑。
- 通过输入以下内容来更新 Custom metadata(自定义元数据):
- 键 = VIPs
-
值 = 提供以下 JSON 格式的值:
{ “Name of external reserved IP”: [list of protocols], }
GCP 支持以下协议:
- AH
- ESP
- ICMP
- SCT
- TCP
- UDP
有关详细信息,请参阅 自定义元数据
自定义元数据示例:
{ “外部 IP1 名称”:[“TCP”, “UDP”], “外部 IP2 名称”:[“ICMP”, “AH”] }
在此示例中,NetScaler VPX 实例在内部为每个 IP 协议对创建了一个转发规则。 元数据条目将映射到转发规则。 此示例可帮助您了解为元数据条目创建了多少条转发规则。
请按如下方式创建四条转发规则:
- 外部 ip1 名称和 TCP
- 外部 ip1 名称和 UDP
- 外部 ip2 名称和 ICMP
- 外部 ip2-name 和 AH
注意:
在高可用模式下,您只能在主实例上添加自定义元数据。 在故障转移时,自定义元数据将同步到新的主节点。
- 单击保存。
在 NetScaler VPX 实例上使用外部 IP 地址设置负载平衡虚拟服务器
第 1 步。 添加负载平衡虚拟服务器。
-
导航到 Configuration(配置)> Traffic Management(流量管理)> Load Balancing(负载平衡)> Virtual Servers(虚拟服务器)> Add(添加)。
-
添加“Name”(名称)、“Protocol”(协议)、IP Address Type (IP Address)(IP 地址类型(IP 地址))、“IP Address”(IP 地址)(在 ADC 上作为 VIP 添加的转发规则的外部 IP 地址)和“Port”(端口)所需的值,然后单击 OK(确定)。
第 2 步。 添加服务或服务组。
- 导航到 Configuration(配置)> Traffic Management(流量管理)> Load Balancing(负载平衡)> Services(服务)> Add(添加)。
-
添加“Service Name”(服务名称)、“IP Address”(IP 地址)、“Protocol”(协议)和“Port”(端口)所需的值,然后单击 OK(确定)。
第 3 步。 将服务或服务组绑定到负载平衡虚拟服务器。
- 导航到 Configuration(配置)> Traffic Management(流量管理)> Load Balancing(负载平衡)> Virtual Servers(虚拟服务器)。
- 选择在 Step 1(步骤 1)中配置的负载平衡虚拟服务器,然后单击 Edit(编辑)。
-
在 Service and Service Groups(服务和服务组)页面中,单击 No Load Balancing Virtual Server Service Binding(无负载平衡虚拟服务器服务绑定)。
-
选择在 Step 3(步骤 3)中配置的服务,然后单击 Bind(绑定)。
- 步骤 7. 保存配置。