为 Citrix ADC CPX 配置高可用性

具有任务关键型和业务关键型应用程序的系统必须持续可用,而不会出现单点故障。具有高可用性的系统可确保应用程序的持续可用性,而不会中断为用户提供的服务。Citrix ADC CPX 支持两个 Citrix ADC 实例的高可用性部署,以保护服务免受计划外停机的影响,并确保出现故障时的业务连续性。配置高可用性后,还可以升级 Citrix ADC CPX 软件,而不会造成用户的服务中断。

注意: 如果禁用了内部用户帐户,则不支持 Citrix ADC CPX 功能的高可用性。

拓扑 1:在具有桥接联网模式的单个 Docker 主机上部署 Citrix ADC CPX 实例

在此拓扑中,两个 Citrix ADC CPX 节点将在具有桥接联网模式的同一个 Docker 主机上创建。两个节点都位于同一桥接网络上,节点可直接相互访问。

下图解释了此拓扑。

拓扑 1

在此示例中,在同一个 Docker 主机上创建了两个 Citrix ADC CPX 实例 CPX-1(NSIP:172.17.0.3)和 CPX-2(NSIP:172.17.0.4)。要获得高可用性支持,必须使用另一个节点的 NSIP 在两个 Citrix ADC CPX 实例上配置高可用性节点。

执行以下步骤以在桥接模式下的单个 Docker 主机上的 Citrix ADC CPX 实例上配置高可用性支持。

  1. 访问 Docker 主机并登录 Citrix ADC CPX 实例的 SSH 提示窗口,如下图所示。有关详细信息,请参阅使用命令行接口配置 Citrix ADC CPX 实例

  2. 使用以下命令在 CPX-1 实例上配置高可用性节点。

    cli_script.sh ‘add ha node 1 172.17.0.4 [-inc enabled]’
    
  3. 使用以下命令在 CPX-2 实例上配置高可用性节点。

    cli_script.sh ‘add ha node 1 172.17.0.3 [-inc enabled]’
    

注意: 当重新启动处于桥接联网模式的 Citrix ADC CPX 节点时,分配给 Citrix ADC CPX 的 IP 地址可能会根据主机上的 Docker 版本而变化。如果两个节点中的任一节点的 NSIP 在重新启动 Citrix ADC CPX 后发生变化,则即使已保存配置,现有的高可用性配置也无法正常运行。在这种情况下,您必须重新在 Citrix ADC CPX 节点上配置高可用性。

拓扑 2:使用桥接联网模式在不同的 Docker 主机上部署 Citrix ADC CPX

在此拓扑中,两个 Citrix ADC CPX 实例以桥接模式部署在两个不同的 Docker 主机上,这些主机可以互相访问。在此部署中,Citrix ADC CPX 必须知道主机的 IP 地址。可以在预配 Citrix ADC CPX 时使用 HOST 环境变量,以使 Citrix ADC CPX 知晓主机的 IP 地址。

必须为 Citrix ADC CPX 节点设置端口映射。可以在创建 Citrix ADC CPX 节点时使用 docker run 命令的 -p 选项来启用所需端口的端口映射。

必须映射以下端口:

  • UDP 3003
  • TCP 3008
  • TCP 8873

下图解释了在两个不同的 Docker 主机上以桥接模式部署两个 Citrix ADC CPX 实例的拓扑结构。

拓扑 2

在此图中,蓝色直线表示两台主机之间的 CPX-HA 流量的流。

注意: 在 Docker 主机上,只有一个 Citrix ADC CPX 可以构成高可用性对。同一主机上的任何其他 Citrix ADC CPX 都不能与另一台主机上的另一个 Citrix ADC CPX 构成高可用性对。

执行以下步骤以桥接模式在不同的 Docker 主机上部署 Citrix ADC 实例,并使用示例拓扑配置高可用性支持。

在此示例中,host1 IP 地址配置为 10.10.10.10/24, host2 IP 地址配置为 10.10.10.20/24

  1. 使用以下命令在 host1 上使用所需的端口映射部署 Citrix ADC CPX。

    Docker run -dt --privileged=true -e EULA=yes --ulimit core=-1 -p 8873:8873 -p 3003:3003/udp -p 3008:3008 -e Host=10.10.10.10 cpx:latest
    
  2. 使用与主机 2 的 IP 地址相同的命令在 host2 上部署 Citrix ADC CPX。

    docker run -dt --privileged=true -e EULA=yes --ulimit core=-1 -p 8873:8873 -p 3003:3003/udp -p 3008:3008 -e HOST=10.10.10.20 cpx:latest
    
  3. 使用以下命令在 CPX-1 实例上配置高可用性节点。

    cli_script.sh  ‘add ha node 1 10.10.10.20 -inc enabled’
    
  4. 使用以下命令在 CPX-2 实例上配置高可用性节点。

    cli_script.sh ‘add ha node 1 10.10.10.10 -inc enabled’
    

注意: 在此部署中,必须使用高可用性节点的主机 IP 地址,而非高可用性节点的 NSIP 地址。

拓扑 3:在没有专用接口的情况下以主机联网模式在不同的 Docker 主机上部署 Citrix ADC CPX

在此拓扑中,两个 Citrix ADC CPX 实例在主机模式下部署在两个不同的 Docker 主机上,而无需专用接口。主机必须可以相互访问。 在此部署中,Citrix ADC CPX 必须知道主机的 IP 地址。可以在预配 Citrix ADC CPX 过程中使用 HOST 环境变量来使其知晓主机的 IP 地址。

必须为 Citrix ADC CPX 节点设置端口映射。可以在创建 Citrix ADC CPX 节点时使用 docker run 命令的 -p 选项来启用所需端口的端口映射。

下图解释了拓扑结构。

拓扑 3

在此图中,蓝色直线表示两台主机之间的 CPX-HA 流量的流。

注意: 在 Docker 主机上,您只能部署一个主机模式 Citrix ADC CPX。

请执行以下步骤以部署 Citrix ADC CPX 实例并使用示例拓扑配置高可用性支持。

  1. 使用以下命令在 host1 上使用所需的端口映射部署 Citrix ADC CPX。

    docker run -dt --privileged=true -e EULA=yes --ulimit core=-1 --net=host -e NS_NETMODE=HOST -e HOST=10.10.10.10 cpx:latest
    
  2. 使用以下命令通过 host2 的 IP 地址在 host2 上部署 Citrix ADC CPX。

    docker run -dt --privileged=true -e EULA=yes --ulimit core=-1
    --net=host -e NS_NETMODE=HOST -e HOST=10.10.10.20 cpx:latest
    
  3. 使用以下命令在 CPX-1 实例上配置高可用性节点。

    cli_script.sh  ‘add ha node 1 10.10.10.20 -inc enabled
    
  4. 使用以下命令在 CPX-2 实例上配置高可用性节点。

    cli_script.sh ‘add ha node 1 10.10.10.10 -inc enabled’
    

拓扑 4:使用主机网络模式和专用接口在不同的 Docker 主机上部署 CPX

在此拓扑中,以主机联网模式将两个 Citrix ADC CPX 实例部署在不同的 Docker 主机上。主机必须有多个接口。可以使用 CPX_NW_DEV 环境变量为 Citrix ADC CPX 指定专用接口。

有关使用 CPX_NW_DEV 环境变量为 Citrix ADC CPX 分配专用网络接口的详细信息,请参阅使用 Docker 运行命令部署 Citrix ADC CPX 实例

部署在不同 Docker 主机上的 Citrix ADC CPX 必须可以通过专用接口在此数据网络上相互访问。

此配置允许高可用性节点通过直接在端口 3003、3008 和 8873 上进行通信来交换检测信号消息和同步配置文件。主机上不需要 NAT 规则。在主机模式下创建的 Citrix ADC CPX 的默认 NSIP 在两个节点上是相同的。因此,还必须指定 NS_IPNS_GATEWAY 信息。

在此示例中,两个主机模式 Citrix ADC CPX 在两台不同的主机上创建。Citrix ADC CPX 实例在两台主机上拥有 eth1 接口,而 eth1 接口连接到同一网络。

下图解释了拓扑结构。在此图中,蓝色箭头表示连接到 eth1 接口的网络上的 CPX-HA 流量的流。

拓扑 4

注意: 在 Docker 主机上,您只能部署一个主机模式 Citrix ADC CPX。

请执行以下步骤以部署 Citrix ADC CPX 实例并使用示例拓扑配置高可用性支持。

  1. 使用以下命令在 host1 上以主机模式部署 Citrix ADC CPX。

    docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e CPX_NW_DEV=eth1 -e NS_IP='12.12.12.2' -e NS_GATEWAY='12.12.12.9' -e EULA=yes --ulimit core=-1 cpx:latest
    
  2. 使用以下命令在 host2 上以主机模式部署 Citrix ADC CPX。

    docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e CPX_NW_DEV=eth1 -e NS_IP='12.12.12.3' -e NS_GATEWAY='12.12.12.10' -e EULA=yes --ulimit core=-1 cpx:latest
    

    注意: 必须为两个 Citrix ADC CPX 节点配置静态路由,才能到达另一个 Citrix ADC CPX 节点以交换检测信号消息和同步配置文件。

  3. 使用以下命令在 CPX-1 实例上配置高可用性节点。

    cli_script.sh  ‘add ha node 1 12.12.12.3 [-inc enabled]’
    
  4. 使用以下命令在 CPX-2 实例上配置高可用性节点。

    cli_script.sh ‘add high availability node 1 12.12.12.2 [-inc enabled]’