部署 NetScaler CPX 作为代理以实现东西向流量
在此部署中,NetScaler CPX 实例充当代理,以实现驻留在多个主机上的应用程序容器之间的通信。NetScaler CPX 实例与多个主机中的应用程序一起预置,并为通信提供最短路径。
下图说明了通过 NetScaler CPX 实例在两个应用程序之间流动的流量。

此图显示了应用程序 C 和应用程序 B 之间以及应用程序 A 和应用程序 B 之间的流量。当应用程序 C(在任何主机中)向 B 发送请求时,请求首先由与应用程序 C 位于同一主机上的 NetScaler CPX 容器接收。然后,NetScaler CPX 容器将流量传递给与应用程序 B 位于同一主机上的 NetScaler CPX 容器,然后流量被转发到应用程序 B。当应用程序 A 向应用程序 B 发送请求时,也会遵循类似的流量路径。
在此示例中,还部署了 NetScaler MPX,以通过全局 VIP 允许来自 Internet 的流量到达应用程序。来自 NetScaler MPX 的流量由 NetScaler CPX 容器接收,然后由这些容器将流量分发到各个应用程序容器。
下图说明了此拓扑以及为实现通信需要进行的配置。

下表列出了在此示例配置中 NetScaler CPX 实例上配置的 IP 地址和端口。

要配置此示例场景,请在所有三个 Docker 主机上创建 NetScaler CPX 容器时,在 Linux shell 提示符下运行以下命令:
docker run -dt -p 22 -p 80 -p 161/udp -p 30000-30002: 30000-30002 --ulimit core=-1 --privileged=truecpx:6.2
<!--NeedCopy-->
通过使用 NetScaler® MAS 中的作业功能或使用 NITRO API 运行以下命令。
在 Docker 主机 1 上的 NetScaler CPX 实例上:
add lb vserver VIP-A1 HTTP 172.17.0.2 30000
add service svc-A1 10.102.29.100 HTTP 80
bind lb vserver VIP-A1 svc-A1
add lb vserver VIP-B1 HTTP 172.17.0.2 30001
add service svc-B1 10.102.29.100 HTTP 90
bind lb vserver VIP-B1 svc-B1
add lb vserver VIP-C1 HTTP 172.17.0.2 30002
add service svc-VIP-C2 10.102.29.105 HTTP 30002
add service svc-VIP-C3 10.102.29.110 HTTP 30002
bind lb vserver VIP-C1 svc-VIP-C2
bind lb vserver VIP-C1 svc-VIP-C3
<!--NeedCopy-->
在 Docker 主机 2 上的 NetScaler CPX 实例上:
add lb vserver VIP-A2 HTTP 172.17.0.3 30000
add service svc-A2 10.102.29.105 HTTP 80
bind lb vserver VIP-A2 svc-A2
add lb vserver VIP-B2 HTTP 172.17.0.3 30001
add service svc-VIP-B1 10.102.29.100 HTTP 30001
bind lb vserver VIP-B2 svc-VIP-B1
add lb vserver VIP-C2 HTTP 172.17.0.3 30002
add service svc-C2 10.102.29.105 HTTP 70
bind lb vserver VIP-C2 svc-C2
<!--NeedCopy-->
在 Docker 主机 3 上的 NetScaler CPX 实例上:
add lb vserver VIP-A3 HTTP 172.17.0.4 30000
add service svc-VIP-A1 10.102.29.100 HTTP 30000
add service svc-VIP-A2 10.102.29.105 HTTP 30000
bind lb vserver VIP-A3 svc-VIP-A1
bind lb vserver VIP-A3 svc-VIP-A2
add lb vserver VIP-B3 HTTP 172.17.0.4 30001
add service svc-VIP-B1 10.102.29.100 HTTP 30001
bind lb vserver VIP-B3 svc-VIP-B1
add lb vserver VIP-C3 HTTP 172.17.0.4 30002
add service svc-C3 10.102.29.110 HTTP 70
bind lb vserver VIP-C3 svc-C3
<!--NeedCopy-->