将 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 ADM 中的作业功能或使用 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 部署为代理以支持东西通信流