在 Google 云端平台上部署具有外部静态 IP 地址的 VPX 高可用性对
可以使用外部静态 IP 地址在 GCP 上部署 VPX 高可用性对。 主节点的客户端 IP 地址必须绑定到外部静态 IP 地址。 故障转移时,外部静态 IP 地址将移动到辅助节点以便恢复流量。
静态外部 IP 地址是在您决定释放之前为项目保留的外部 IP 地址。 如果使用 IP 地址访问服务,则可以保留该 IP 地址,以便只有您的项目可以使用。 有关更多信息,请参阅 保留静态外部 IP 地址。
有关 HA 的更多信息,请参阅 高可用性。
开始之前的准备工作
-
阅读 在 Google Cloud Platform上部署 NetScaler VPX 实例中提到的限制、硬件要求和注意事项。 此信息也适用于高可用性部署。
- 为您的 GCP 项目启用 Cloud Resource Manager API。
-
在创建实例时允许对所有云 API 进行完全访问。
-
确保与您的 GCP 服务帐户关联的 IAM 角色具有以下 IAM 权限:
REQUIRED_INSTANCE_IAM_PERMS = [ "compute.addresses.use", "compute.forwardingRules.list", "compute.forwardingRules.setTarget", "compute.instances.setMetadata" "compute.instances.addAccessConfig", "compute.instances.deleteAccessConfig", "compute.instances.get", "Compute.instances.list", "compute.networks.useExternalIp", "compute.subnetworks.useExternalIp", "compute.targetInstances.list", "compute.targetInstances.use", "compute.targetInstances.create", "compute.zones.list", "compute.zoneOperations.get", ] <!--NeedCopy-->
-
如果您在管理界面以外的其他接口上配置了别名 IP 地址,请确保您的 GCP 服务帐户具有以下其他 IAM 权限:
"compute.instances.updateNetworkInterface" <!--NeedCopy-->
- 如果您已在主节点上配置了 GCP 转发规则,请阅读 GCP 上 VPX 高可用性对的转发规则支持 中提到的限制和要求,以便在故障转移时将它们更新为新的主节点。
如何在 Google 云端平台上部署 VPX 高可用性对
以下是 HA 部署步骤的摘要:
- 在同一地理地区创建多个 VPC 网络。 例如,Asia-east。
- 在同一地理区域创建两个 VPX 实例(主节点和辅助节点)。 它们可以位于同一个区域,也可以位于不同的区域。 例如,Asia east-1a 和 Asia east-Ib。
- 使用 NetScaler GUI 或 ADC CLI 命令在两个实例上配置 HA 设置。
步骤 1. 步骤 1. 创建 VPC 网络
根据您的要求创建 VPC 网络。 Citrix 建议您创建三个 VPC 网络,分别用于与管理 NIC、客户端 NIC 和服务器 NIC 关联。
要创建 VPC 网络,请执行以下步骤:
- 登录 Google 控制台 > Networking(网络连接)> VPC network(VPC 网络)> Create VPC Network(创建 VPC 网络)。
- 填写必填字段,然后单击 Create(创建)。
有关更多信息,请参阅 在 Google Cloud Platform 上部署 NetScaler VPX 实例中的 创建 VPC 网络 部分。
步骤 2. 步骤 2. 创建两个 VPX 实例
按照 场景中给出的步骤创建两个 VPX 实例:部署多 NIC、多 IP 独立 VPX 实例。
重要:
为主节点的客户端 IP 地址 (VIP) 分配静态外部 IP 地址。 可以使用现有的预留 IP 地址或创建新的 IP 地址。 要创建静态外部 IP 地址,请导航到 Network interface(网络接口)> External IP(外部 IP),单击 Create IP address(创建 IP 地址)。
执行故障转移后,当旧主节点成为新辅助主节点时,静态外部 IP 地址将从旧主节点移动并连接到新的主节点。 有关更多信息,请参阅 Google 云文档预留静态外部 IP 地址。
配置 VPX 实例后,您可以配置 VIP 和 SNIP 地址。 有关更多信息,请参阅 配置 NetScaler 拥有的 IP 地址。
步骤 3. 步骤 3. 配置高可用性
在Google Cloud Platform 上创建实例后,您可以使用适用于 CLI 的 NetScaler GUI 来配置 HA。
使用 GUI 配置高可用性
第 1 步。 在两个实例中在 INC 模式下设置高可用性。
在主节点上执行以下步骤:
- 使用用户名
nsroot
以及 GCP 控制台中的节点的实例 ID 作为密码登录实例。 - 导航到 Configuration(配置)> System(系统)> High Availability(高可用性)> Nodes(节点),然后单击 Add(添加)。
- 在 Remote Node IP address(远程节点 IP 地址)字段中,输入辅助节点的管理 NIC 的专用 IP 地址。
- 选择 Turn on INC (Independent Network Configuration) mode on self node(在自助节点上打开 INC (Independent Network Configuration)模式)复选框。
- 单击创建。
在辅助节点上执行以下步骤:
- 使用用户名
nsroot
以及 GCP 控制台中的节点的实例 ID 作为密码登录实例。 - 导航到 Configuration(配置)> System(系统)> High Availability(高可用性)> Nodes(节点),然后单击 Add(添加)。
- 在 Remote Node IP address(远程节点 IP 地址)字段中,输入主节点的管理 NIC 的专用 IP 地址。
- 选择 Turn on INC (Independent Network Configuration) mode on self node(在自助节点上打开 INC (Independent Network Configuration)模式)复选框。
- 单击创建。
继续操作之前,请确保辅助节点的同步状态在 Nodes(节点)页面上显示为 SUCCESS(成功)。
注意:
现在,辅助节点具有与主节点相同的登录凭据。
第 2 步。 在两个节点上添加虚拟 IP 和子网 IP。
在主节点上执行以下步骤:
- 导航到 System(系统)> Network(网络)> IPs(IP)> IPv4s(IPv4),然后单击 Add(添加)。
- 请按照以下步骤添加主 VIP 地址:
- 输入主实例的面向客户端的接口的内部 IP 地址以及为 VM 实例中的客户端子网配置的网络掩码。
- 在 IP Type(IP 类型)字段中,从下拉菜单中选择 Virtual IP(虚拟 IP)。
- 单击创建。
- 请按照以下步骤添加主 SNIP 地址:
- 输入主实例面向服务器的接口的内部 IP 地址和为主实例中的服务器子网配置的网络掩码。
- 在 IP Type(IP 类型)字段中,从下拉菜单中选择 Subnet IP(子网 IP)。
- 单击创建。
- 按照以下步骤添加辅助 VIP 地址:
- 输入辅助实例的面向客户端的接口的内部 IP 地址以及为 VM 实例中的客户端子网配置的网络掩码。
- 在 IP Type(IP 类型)字段中,从下拉菜单中选择 Virtual IP(虚拟 IP)。
- 单击创建。
在辅助节点上执行以下步骤:
- 导航到 System(系统)> Network(网络)> IPs(IP)> IPv4s(IPv4),然后单击 Add(添加)。
- 按照以下步骤添加辅助 VIP 地址:
- 输入辅助实例的面向客户端的接口的内部 IP 地址以及为 VM 实例中的客户端子网配置的网络掩码。
- 在 IP Type(IP 类型)字段中,从下拉菜单中选择 Virtual IP(虚拟 IP)。
- 请按照以下步骤添加辅助 SNIP 地址:
- 输入辅助实例的面向服务器的接口的内部 IP 地址以及为辅助实例中的服务器子网配置的网络掩码。
- 在 IP Type(IP 类型)字段中,从下拉菜单中选择 Subnet IP(子网 IP)。
- 单击创建。
第 3 步。 在两个实例上添加 IP 集并将 IP 集绑定到二级 VIP。
在主节点上执行以下步骤:
- 导航到 System(系统)> Network(网络)> IP Sets(IP 集)> Add(添加)。
- 添加 IP 集名称,然后单击 Insert(插入)。
- 在 IPV4s(IPv4)页面中,选择虚拟 IP(二级 VIP),然后单击 Insert(插入)。
- 单击 Create(创建)以创建 IP 集。
在辅助节点上执行以下步骤:
- 导航到 System(系统)> Network(网络)> IP Sets(IP 集)> Add(添加)。
- 添加 IP 集名称,然后单击 Insert(插入)。
- 在 IPV4s(IPv4)页面中,选择虚拟 IP(二级 VIP),然后单击 Insert(插入)。
- 单击 Create(创建)以创建 IP 集。
注意:
两个实例上的 IP 集名称必须相同。
第 4 步。 在主实例上添加负载平衡虚拟服务器。
- 导航到 Configuration(配置)> Traffic Management(流量管理)> Load Balancing(负载平衡)> Virtual Servers(虚拟服务器)> Add(添加)。
-
添加“Name”(名称)、“Protocol”(协议)、“IP Address Type (IP Address)”(IP 地址类型(IP 地址))、“IP address (primary VIP)”(IP 地址(主 VIP 地址))和“Port”(端口)所需的值。
- 单击 More(更多)。 导航到 IP Range IP Set Settings(IP 范围 IP 集设置),从下拉菜单中选择 IPSet =(IP 集),并提供在步骤 3 中创建的 IP 集。
- 单击 OK(确定)以创建负载平衡虚拟服务器。
第 5 步。 在主节点上添加服务或服务组。
- 导航到 Configuration(配置)> Traffic Management(流量管理)> Load Balancing(负载平衡)> Services(服务)> Add(添加)。
- 添加“Service Name”(服务名称)、“IP Address”(IP 地址)、“Protocol”(协议)和“Port”(端口)所需的值,然后单击 OK(确定)。
第 6 步。 将服务或服务组绑定到主节点上的负载平衡虚拟服务器。
- 导航到 Configuration(配置)> Traffic Management(流量管理)> Load Balancing(负载平衡)> Virtual Servers(虚拟服务器)。
- 选择在 Step 4(步骤 4)中配置的负载平衡虚拟服务器,然后单击 Edit(编辑)。
- 在 Service and Service Groups(服务和服务组)选项卡中,单击 No Load Balancing Virtual Server Service Binding(无负载平衡虚拟服务器服务绑定)。
- 选择在 Step 5(步骤 5)中配置的服务,然后单击 Bind(绑定)。
步骤 7. 保存配置。 执行强制故障转移后,辅助节点将成为新的主节点。 旧的主 VIP 的外部静态 IP 将移至新的辅助 VIP。
使用 CLI 配置高可用性
第 1 步。 在两个实例中在 INC 模式下设置高可用性。
在主节点上,键入以下命令。
add ha node 1 <sec_ip> -inc ENABLED
<!--NeedCopy-->
在辅助节点上,键入以下命令。
add ha node 1 <prim_ip> -inc ENABLED
<!--NeedCopy-->
sec_ip
是指辅助节点的管理 NIC 的内部 IP 地址。
prim_ip
是指主节点的管理 NIC 的专内部 IP 地址。
第 2 步。 在两个节点上添加虚拟 IP 地址和子网 IP 地址。
在主节点上,键入以下命令。
add ns ip <primary_vip> <subnet> -type VIP
add ns ip <secondary_vip> <subnet> -type VIP
add ns ip <primary_snip> <subnet> -type SNIP
<!--NeedCopy-->
primary_vip
是指主实例面向客户端的接口的内部 IP 地址。
secondary_vip
是指辅助实例面向客户端的接口的内部 IP 地址。
primary_snip
是指主实例面向服务器的接口的内部 IP 地址。
在辅助节点上,键入以下命令。
add ns ip <secondary_vip> <subnet> -type VIP
add ns ip <secondary_snip> <subnet> -type SNIP
<!--NeedCopy-->
secondary_vip
是指辅助实例面向客户端的接口的内部 IP 地址。
secondary_snip
指辅助实例面向服务器的接口的内部 IP 地址。
第 3 步。 在两个实例上添加 IP 集并将 IP 集绑定到二级 VIP。
在主节点上,键入以下命令:
add ipset <ipsetname>
bind ipset <ipsetname> <secondary VIP>
<!--NeedCopy-->
在辅助节点上,键入以下命令:
add ipset <ipsetname>
bind ipset <ipsetname> <secondary VIP>
<!--NeedCopy-->
注意:
两个实例上的 IP 集名称必须相同。
第 4 步。 在主实例上添加一个虚拟服务器。
键入以下命令:
add <server_type> vserver <vserver_name> <protocol> <primary_vip> <port> -ipset <ipset_name>
<!--NeedCopy-->
第 5 步。 在主实例上添加服务或服务组。
键入以下命令:
add service <service_name> <service_ip_address> <protocol> <port>
<!--NeedCopy-->
第 6 步。 将服务/服务组绑定到主实例上的负载平衡虚拟服务器。
键入以下命令:
bind <server_type> vserver <vserver_name> <service_name>
<!--NeedCopy-->
注意:
要保存配置,请键入命令
save config
。 否则,在您重新启动实例后,配置将丢失。
第 7 步。 验证配置。
确保连接到主客户端 NIC 的外部 IP 地址在故障切换时移至辅助实例。
- 向外部 IP 地址发出 cURL 请求,并确保其可以访问。
-
在主实例上,执行故障转移:
从 GUI 中,导航到 Configuration(配置)> System(系统)> High Availability(高可用性)> Action(操作)> Force Failover(强制故障转移)。
在 CLI 中,键入以下命令:
force ha failover -f <!--NeedCopy-->
在 GCP 控制台上,转到“Secondary instance”(辅助实例)。 故障转移后,外部 IP 地址必须移至辅助实例的客户端 NIC。
- 向外部 IP 发出 cURL 请求并确保可以再次访问该 IP。