Citrix ADC

在 Google 云端平台上部署具有外部静态 IP 地址的 VPX 高可用性对

可以使用外部静态 IP 地址在 GCP 上部署 VPX 高可用性对。主节点的客户端 IP 地址必须绑定到外部静态 IP 地址。故障转移时,外部静态 IP 地址将移动到辅助节点以便恢复流量。

静态外部 IP 地址是在您决定释放之前为项目保留的外部 IP 地址。如果使用 IP 地址访问服务,则可以保留该 IP 地址,以便只有您的项目可以使用。有关更多信息,请参阅 保留静态外部 IP 地址

有关 HA 的更多信息,请参阅 高可用性

开始之前的准备工作

  • 阅读在 Google Cloud Platform 上部署 Citrix ADC VPX 实例中提到的限制、硬件要求和注意事项。此信息也适用于高可用性部署。

  • 为您的 GCP 项目启用 Cloud Resource Manager API
  • 在创建实例时允许对所有云 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.zones.list",
     ]
     <!--NeedCopy-->
    
  • 如果您在管理界面以外的接口上配置了别名 IP 地址,请确保您的 GCP 服务账户具有以下额外的 IAM 权限:

     "compute.instances.updateNetworkInterface"
     <!--NeedCopy-->
    
  • 如果您在主节点上配置了 GCP 转发规则,请阅读 GCP 上对 VPX 高可用性对的转发规则支持中提到的限制和要求,以便在 故障转移时将其更新为新的主节点。

如何在 Google 云端平台上部署 VPX 高可用性对

以下是 HA 部署步骤的摘要:

  1. 在同一地理地区创建多个 VPC 网络。例如,Asia-east。
  2. 在同一地理区域创建两个 VPX 实例(主节点和辅助节点)。它们可以位于同一个区域,也可以位于不同的区域。例如,Asia east-1a 和 Asia east-Ib。
  3. 使用 Citrix ADC GUI 或 ADC CLI 命令在两个实例上配置高可用性设置。

步骤 1. 创建 VPC 网络

根据您的要求创建 VPC 网络。Citrix 建议您创建三个 VPC 网络,分别用于与管理 NIC、客户端 NIC 和服务器 NIC 关联。

要创建 VPC 网络,请执行以下步骤:

  1. 登录 Google 控制台 > Networking(网络连接)> VPC network(VPC 网络)> Create VPC Network(创建 VPC 网络)
  2. 填写必填字段,然后单击 Create(创建)。

有关更多信息,请参阅在 Google Cloud Platform 上部署 Citrix ADC VPX 实例 中的 创建 VPC 网络部分。

步骤 2. 创建两个 VPX 实例

按照 场景中给出的步骤创建两个 VPX 实例:部署多网卡、多 IP 独立 VPX 实例

重要

为主节点的客户端 IP 地址 (VIP) 分配静态外部 IP 地址。可以使用现有的预留 IP 地址或创建新的 IP 地址。要创建静态外部 IP 地址,请导航到 Network interface(网络接口)> External IP(外部 IP),单击 Create IP address(创建 IP 地址)。

外部静态 IP

执行故障转移后,当旧主节点成为新辅助主节点时,静态外部 IP 地址将从旧主节点移动并连接到新的主节点。 有关更多信息,请参阅 Google 云文档预留静态外部 IP 地址

配置 VPX 实例后,您可以配置 VIP 和 SNIP 地址。有关更多信息,请参阅 配置 Citrix ADC 拥有的 IP 地址

步骤 3. 配置高可用性

在 Google Cloud Platform 上创建实例后,可以使用适用于 CLI 的 Citrix ADC GUI 配置 HA。

使用 GUI 配置高可用性

步骤 1. 在两个实例上以 INC 模式设置高可用性。

主节点上执行以下步骤:

  1. 使用用户名 nsroot 以及 GCP 控制台中的节点的实例 ID 作为密码登录实例。
  2. 导航到 Configuration(配置)> System(系统)> High Availability(高可用性)> Nodes(节点),然后单击 Add(添加)。
  3. Remote Node IP address(远程节点 IP 地址)字段中,输入辅助节点的管理 NIC 的专用 IP 地址。
  4. 选择 Turn on INC (Independent Network Configuration) mode on self node(在自助节点上打开 INC (Independent Network Configuration)模式)复选框。
  5. 单击创建

辅助节点上执行以下步骤:

  1. 使用用户名 nsroot 以及 GCP 控制台中的节点的实例 ID 作为密码登录实例。
  2. 导航到 Configuration(配置)> System(系统)> High Availability(高可用性)> Nodes(节点),然后单击 Add(添加)。
  3. Remote Node IP address(远程节点 IP 地址)字段中,输入主节点的管理 NIC 的专用 IP 地址。
  4. 选择 Turn on INC (Independent Network Configuration) mode on self node(在自助节点上打开 INC (Independent Network Configuration)模式)复选框。
  5. 单击创建

继续操作之前,请确保辅助节点的同步状态在 Nodes(节点)页面上显示为 SUCCESS(成功)。

辅助节点同步状态

注意

现在,辅助节点具有与主节点相同的登录凭据。

步骤 2. 在两个节点上添加虚拟 IP 地址和子网 IP 地址。

主节点上执行以下步骤:

  1. 导航到 System(系统)> Network(网络)> IPs(IP)> IPv4s(IPv4),然后单击 Add(添加)。
  2. 请按照以下步骤添加主 VIP 地址:
    1. 输入主实例的面向客户端的接口的内部 IP 地址以及为 VM 实例中的客户端子网配置的网络掩码。
    2. IP Type(IP 类型)字段中,从下拉菜单中选择 Virtual IP(虚拟 IP)。
    3. 单击创建
  3. 请按照以下步骤添加主 SNIP 地址:
    1. 输入主实例面向服务器的接口的内部 IP 地址和为主实例中的服务器子网配置的网络掩码。
    2. IP Type(IP 类型)字段中,从下拉菜单中选择 Subnet IP(子网 IP)。
    3. 单击创建
  4. 按照以下步骤添加辅助 VIP 地址:
    1. 输入辅助实例的面向客户端的接口的内部 IP 地址以及为 VM 实例中的客户端子网配置的网络掩码。
    2. IP Type(IP 类型)字段中,从下拉菜单中选择 Virtual IP(虚拟 IP)。
    3. 单击创建

在主节点上创建 VIP 和 SNIP

辅助节点上执行以下步骤:

  1. 导航到 System(系统)> Network(网络)> IPs(IP)> IPv4s(IPv4),然后单击 Add(添加)。
  2. 按照以下步骤添加辅助 VIP 地址:
    1. 输入辅助实例的面向客户端的接口的内部 IP 地址以及为 VM 实例中的客户端子网配置的网络掩码。
    2. IP Type(IP 类型)字段中,从下拉菜单中选择 Virtual IP(虚拟 IP)。
  3. 请按照以下步骤添加辅助 SNIP 地址:
    1. 输入辅助实例的面向服务器的接口的内部 IP 地址以及为辅助实例中的服务器子网配置的网络掩码。
    2. IP Type(IP 类型)字段中,从下拉菜单中选择 Subnet IP(子网 IP)。
    3. 单击创建

在辅助节点上创建 VIP 和 SNIP

步骤 3. 在两个实例上添加 IP 集并将 IP 集绑定到二级 VIP。

主节点上执行以下步骤:

  1. 导航到 System(系统)> Network(网络)> IP Sets(IP 集)> Add(添加)
  2. 添加 IP 集名称,然后单击 Insert(插入)。
  3. IPV4s(IPv4)页面中,选择虚拟 IP(二级 VIP),然后单击 Insert(插入)。
  4. 单击 Create(创建)以创建 IP 集。

创建主 IP 集

辅助节点上执行以下步骤:

  1. 导航到 System(系统)> Network(网络)> IP Sets(IP 集)> Add(添加)
  2. 添加 IP 集名称,然后单击 Insert(插入)。
  3. IPV4s(IPv4)页面中,选择虚拟 IP(二级 VIP),然后单击 Insert(插入)。
  4. 单击 Create(创建)以创建 IP 集。

创建辅助 IP 集

注意

两个实例上的 IP 集名称必须相同。

步骤 4. 在主实例上添加负载平衡虚拟服务器。

  1. 导航到 Configuration(配置)> Traffic Management(流量管理)> Load Balancing(负载平衡)> Virtual Servers(虚拟服务器)> Add(添加)
  2. 添加“Name”(名称)、“Protocol”(协议)、“IP Address Type (IP Address)”(IP 地址类型(IP 地址))、“IP address (primary VIP)”(IP 地址(主 VIP 地址))和“Port”(端口)所需的值。

    主实例上的负载平衡虚拟服务器

  3. 单击 More(更多)。导航到 IP Range IP Set Settings(IP 范围 IP 集设置),从下拉菜单中选择 IPSet =(IP 集),并提供在步骤 3 中创建的 IP 集。
  4. 单击 OK(确定)以创建负载平衡虚拟服务器。

步骤 5. 在主节点上添加服务或服务组。

  1. 导航到 Configuration(配置)> Traffic Management(流量管理)> Load Balancing(负载平衡)> Services(服务)> Add(添加)
  2. 添加“Service Name”(服务名称)、“IP Address”(IP 地址)、“Protocol”(协议)和“Port”(端口)所需的值,然后单击 OK(确定)。

步骤 6. 将服务或服务组绑定到主节点上的负载平衡虚拟服务器。

  1. 导航到 Configuration(配置)> Traffic Management(流量管理)> Load Balancing(负载平衡)> Virtual Servers(虚拟服务器)
  2. 选择在 Step 4(步骤 4)中配置的负载平衡虚拟服务器,然后单击 Edit(编辑)。
  3. Service and Service Groups(服务和服务组)选项卡中,单击 No Load Balancing Virtual Server Service Binding(无负载平衡虚拟服务器服务绑定)。
  4. 选择在 Step 5(步骤 5)中配置的服务,然后单击 Bind(绑定)。

保存配置。执行强制故障转移后,辅助节点将成为新的主节点。旧的主 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 地址在故障切换时移至辅助实例。

  1. 向外部 IP 地址发出 cURL 请求,并确保其可以访问。
  2. 在主实例上,执行故障转移:

    从 GUI 中,导航到 Configuration(配置)> System(系统)> High Availability(高可用性)> Action(操作)> Force Failover(强制故障转移)

    在 CLI 中,键入以下命令:

    force ha failover -f
    <!--NeedCopy-->
    

    在 GCP 控制台上,转到“Secondary instance”(辅助实例)。故障转移后,外部 IP 地址必须移至辅助实例的客户端 NIC。

  3. 向外部 IP 发出 cURL 请求并确保可以再次访问该 IP。
在 Google 云端平台上部署具有外部静态 IP 地址的 VPX 高可用性对