部署 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-->
部署 NetScaler CPX 作为代理以实现东西向流量