在多主机网络中部署Citrix ADC CPX

可以在数据中心的生产部署中配置多主机网络中的Citrix ADC CPX实例,在那里它提供负载平衡功能。此外它还提供监视功能和分析数据。

在多主机网络中,Citrix ADC CPX实例,后端服务器和客户端部署在不同的主机上。可以在生产部署中使用多主机拓扑,在这些部署中,Citrix ADC CPX实例对一组基于容器的应用程序和服务器甚至是物理服务器执行负载平衡。

拓扑1:Citrix ADC CPX和后端服务器位于同一主机上;客户端位于不同的网络上

在此拓扑中,在同一码头工人主机上预配Citrix ADC CPX实例和数据库服务器,但客户端流量源自网络的其他地方。此拓扑可在生产部署中使用,在该部署中,Citrix ADC CPX实例对一组基于容器的应用程序或服务器执行负载平衡。

下图说明了此拓扑。

本地化后的图片

在此示例中,在IP地址为10.102.29.100的同一码头工人主机上预配Citrix ADC CPX实例(172.17.0.4)与两台服务器DB1(172.17.0.10)和DB2(172.17.0.11)。客户端位于网络的其他地方。

源自互联网的客户端请求通过在Citrix ADC CPX实例上配置的贵宾接收,之后该实例在两台服务器之间分发请求。

有两种配置此拓扑的方法:

方法 1:将其他IP地址和标准端口用于VIP

  1. 使用额外的IP地址在Citrix ADC CPX容器上配置VIP。
  2. 为Docker主机配置其他IP地址。
  3. 配置NAT规则以将码头工人主机的其他IP地址上接收的所有流量转发至贵宾的其他IP地址。
  4. 在Citrix ADC CPX实例上,将两台服务器配置为服务。
  5. 最后将服务绑定至vip。

请注意,此配置示例中,10.x.x。X网络表示公用网络。

要配置此方案示例,请使用Citrix ADM中的作业功能或使用硝基API来运行以下命令:

add service s1 172.17.0.10 HTTP 80 add service s2 172.17.0.11 HTTP 80 add lb vserver cpx-vip HTTP 172.17.4.100 80 bind lb vserver cpx-vip s1 bind lb vserver cpx-vip s2 

通过在Linux shell提示窗口运行以下命令来为码头工人主机配置其他公用IP地址并配置NAT规则。

ip addr add 10.102.29.103/24 dev eth0 iptables -t nat -A PREROUTING -p ip -d 10.102.29.103 -j DNAT——to destination 172.17.4.100 

方法 2:将思杰ADC CPX IP地址用于VIP,并配置端口映射:

  1. 在思杰ADC CPX实例上,配置VIP和两个服务。将非标准端口81用于vip。
  2. 将服务绑定至vip。
  3. 配置NAT规则以将码头工人主机的端口50000上接收的所有流量转发至贵宾和端口81。

为了配置此示例方案,请在所有三个码头工人主机上创建Citrix ADC CPX容器时在Linux shell提示窗口中运行以下命令:

Docker run -dt -p 22 -p 80 -p 161/udp -p 5000:81——ulimit core=-1——privilege =true cpx:6.2 

预配Citrix ADC CPX实例后,使用Citrix ADM中的作业功能或使用硝基API来运行以下命令:

add service s1 172.17.0.10 http 80 add service s2 172.17.0.11 http 80 add lb vserver cpx-vip http 172.17.0.4 81 bind lb vserver cpx-vip s1 bind lb vserver cpx-vip s2 

注意:

如果在预配Citrix ADC CPX实例过程中未配置端口映射,请通过在Linux shell提示窗口中运行以下命令来配置NAT规则:

iptables -t nat -A PREROUTING -p tcp -m addrtype -dst-type LOCAL -m tcp -dport50000-j DNAT到目的地172.17.0.4:81

拓扑2:具有物理服务器和客户端的Citrix ADC CPX

在此拓扑中,在Docker主机上只预配了Citrix ADC CPX实例。客户端和服务器不是基于容器的,且位于网络的其他地方。

在此环境中,您可以配置Citrix ADC CPX实例以在物理服务器之间对流量执行负载平衡。

下图说明了此拓扑。

本地化后的图片

在此示例中,Citrix ADC CPX容器(172.17.0.4)位于客户端和物理服务器之间,充当代理。服务器DB1(10.102.29.105)和DB2(10.102.29.110)位于网络上码头工人主机以外的地方。客户端请求源自互联网并在Citrix ADC CPX上接收,该CPX在两台服务器之间分发请求。

为了能够在客户端和服务器之间通过Citrix ADC CPX进行通信,必须先在创建Citrix ADC CPX容器时配置端口映射。然后在Citrix ADC CPX容器上配置两个服务以代表两台服务器。最后,使用Citrix ADC CPX IP地址和非标准的映射HTTP端口8080年来配置虚拟服务器。

请注意,配置示例中,10.x.x。X网络表示公用网络。

为了配置此示例方案,请在创建Citrix ADC CPX容器时在Linux shell提示窗口中运行以下命令:

Docker run -dt -p 22 -p 80 -p 161/udp -p 8080:8080——ulimit core=-1——privilege =true cpx:6.2 

然后,使用Citrix ADM中的作业功能或使用NITRO API来运行以下命令:

add service s1 HTTP 10.102.29.105 80 add service s2 HTTP 10.102.29.110 80 add lb vserver cpx-vip HTTP 172.17.0.4 8080 bind lb vserver cpx-vip s1 bind lb vserver cpx-vip s2 

拓扑3:在不同的主机上预配Citrix ADC CPX和服务器

在此拓扑中,在不同的码头工人主机上预配Citrix ADC CPX实例和数据库服务器,客户端流量源自互联网。此拓扑可在生产部署中使用,在该部署中,Citrix ADC CPX实例对一组基于容器的应用程序或服务器执行负载平衡。

下图说明了此拓扑。

本地化后的图片

在此示例中,在IP地址为10.102.29.100的同一码头工人主机上预配了Citrix ADC CPX实例和服务器(DB1)。在两个不同的码头工人主机10.102.29.105和10.102.29.110上置备了四台其他的服务器(DB2、DB4 DB4和DB5跑车)。

源自互联网的客户端请求在Citrix ADC CPX实例上接收,之后该实例在五台服务器之间分发请求。为了实现此通信,必须进行以下配置:

  1. 创建您的Citrix ADC CPX容器时设置端口映射。在此示例中,这意味着您必须将容器上的端口 8080 转发至主机上的端口 8080。当客户端请求到达主机的端口8080时,它会映射到CPX容器的端口8080。

  2. 在Citrix ADC CPX实例上,将五台服务器配置为服务。必须使用各个Docker主机IP地址和映射的端口组合来设置这些服务。

  3. 在Citrix ADC CPX实例上配置VIP以接收客户端请求。此贵宾由映射到主机的端口8080的Citrix ADC CPX IP地址和端口8080年来表示。

  4. 最后将服务绑定至vip。

请注意,配置示例中,10.x.x。X网络表示公用网络。

为了配置此示例方案,请在创建Citrix ADC CPX容器时在Linux shell提示窗口中运行以下命令:

Docker run -dt -p 22 -p 80 -p 161/udp -p 8080:8080——ulimit core=-1——privilege =true cpx:6.2 

使用Citrix ADM中的作业功能或使用NITRO API来运行以下命令:

add service s1 10.102.29.100 HTTP 8081 add service s2 10.102.29.105 HTTP 8081 add service s3 10.102.29.105 HTTP 8082 add service s4 10.102.29.110 HTTP 8081 add service s5 10.102.29.110 HTTP 8082 add lb vserver cpx-vip s1 bind lb vserver cpx-vip s2 bind lb vserver cpx-vip s3 bind lb vserver cpx-vip s4 bind lb vserver cpx-vip s5 
在多主机网络中部署Citrix ADC CPX