Bereitstellen von NetScaler CPX in einem Multi-Host-Netzwerk
Eine NetScaler CPX-Instanz in einem Multi-Host-Netzwerk kann in einer Produktionsbereitstellung im Rechenzentrum konfiguriert werden, wo sie Lastausgleichsfunktionen bereitstellt. Es kann ferner Überwachungsfunktionen und Analysedaten bereitstellen.
In einem Multi-Host-Netzwerk werden die NetScaler CPX-Instanzen, Backend-Server und die Clients auf verschiedenen Hosts bereitgestellt. Sie können Multi-Host-Topologien in Produktionsbereitstellungen verwenden, bei denen die NetScaler CPX-Instanz eine Reihe von Container-basierten Anwendungen und Servern oder sogar physische Server ausgleicht.
Topologie 1: NetScaler CPX und Backend-Server auf demselben Host; Client in einem anderen Netzwerk
In dieser Topologie werden die NetScaler CPX-Instanz und die Datenbankserver auf demselben Docker-Host bereitgestellt, der Clientdatenverkehr stammt jedoch von einer anderen Stelle im Netzwerk. Diese Topologie kann in einer Produktionsbereitstellung verwendet werden, in der die NetScaler CPX-Instanz eine Reihe von Container-basierten Anwendungen oder Servern ausgleicht.
Das folgende Diagramm veranschaulicht diese Topologie.
In diesem Beispiel werden die NetScaler CPX-Instanz (172.17.0.4) und die beiden Server DB1 (172.17.0.10) und DB2 (172.17.0.11) auf demselben Docker-Host mit der IP-Adresse 10.102.29.100 bereitgestellt. Der Client befindet sich an einer anderen Stelle im Netzwerk.
Die aus dem Internet stammenden Clientanforderungen werden auf dem VIP empfangen, der auf der NetScaler CPX-Instanz konfiguriert ist und die Anforderungen dann auf die beiden Server verteilt.
Es gibt zwei Methoden, mit denen Sie diese Topologie konfigurieren können:
Methode 1: Verwenden einer zusätzlichen IP-Adresse und eines Standardports für den VIP
- Konfigurieren Sie den VIP auf dem NetScaler CPX-Container mithilfe einer zusätzlichen IP-Adresse.
- Konfigurieren Sie eine zusätzliche IP-Adresse für den Docker-Host.
- Konfigurieren Sie NAT-Regeln, um den gesamten auf der zusätzlichen IP-Adresse des Docker-Hosts empfangenen Datenverkehr an die zusätzliche IP-Adresse des VIP weiterzuleiten.
- Konfigurieren Sie die beiden Server als Dienste auf der NetScaler CPX-Instanz.
- Binden Sie die Dienste abschließend an den VIP.
Beachten Sie, dass in dieser Beispielkonfiguration das 10.x.x.x-Netzwerk ein öffentliches Netzwerk bezeichnet.
Um dieses Beispielszenario zu konfigurieren, führen Sie die folgenden Befehle aus, indem Sie entweder die Funktion Jobs in NetScaler MAS oder mithilfe von NITRO-APIs verwenden:
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
<!--NeedCopy-->
Konfigurieren Sie eine zusätzliche öffentliche IP-Adresse für den Docker-Host und eine NAT-Regel, indem Sie die folgenden Befehle an der Linux-Shell-Eingabeaufforderung ausführen:
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
<!--NeedCopy-->
Methode 2: Verwenden der NetScaler CPX-IP-Adresse für den VIP und Konfigurieren der Portzuordnung:
- Konfigurieren Sie den VIP und die beiden Dienste auf der NetScaler CPX-Instanz. Verwenden Sie einen nicht standardmäßigen Port (81) mit dem VIP.
- Binden Sie die Dienste an den VIP.
- Konfigurieren Sie eine NAT-Regel, um den gesamten auf Port 50000 des Docker-Hosts empfangenen Datenverkehr an den VIP und Port 81 weiterzuleiten.
Um dieses Beispielszenario zu konfigurieren, führen Sie den folgenden Befehl an der Linux-Shell-Eingabeaufforderung aus, während Sie den NetScaler CPX-Container auf allen drei Docker-Hosts erstellen:
docker run -dt -p 22 -p 80 -p 161/udp -p 50000:81 --ulimit core=-1 --privileged=true cpx:6.2
<!--NeedCopy-->
Nachdem die NetScaler CPX-Instanz bereitgestellt wurde, führen Sie die folgenden Befehle aus, indem Sie entweder die Funktion Jobs in NetScaler MAS oder mithilfe von NITRO-APIs verwenden:
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
<!--NeedCopy-->
Hinweis:
Wenn Sie während der Bereitstellung der NetScaler CPX-Instanz keine Portzuordnung konfiguriert haben, konfigurieren Sie eine NAT-Regel, indem Sie die folgenden Befehle an der Linux-Shell-Eingabeaufforderung ausführen:
iptables -t nat -A PREROUTING -p tcp -m addrtype –dst-type LOCAL -m tcp –dport 50000 -j DNAT –to-destination 172.17.0.4:81
Topologie 2: NetScaler CPX mit physischen Servern und Client
In dieser Topologie wird nur die NetScaler CPX-Instanz auf einem Docker-Host bereitgestellt. Der Client und die Server sind nicht containerbasiert und befinden sich an anderer Stelle im Netzwerk.
In dieser Umgebung können Sie die NetScaler CPX-Instanz so konfigurieren, dass der Datenverkehr über die physischen Server verteilt wird.
Die folgende Abbildung veranschaulicht diese Topologie.
In diesem Beispiel befindet sich der NetScaler CPX-Container (172.17.0.4) zwischen dem Client und den physischen Servern, die als Proxy fungieren. Die Server DB1 (10.102.29.105) und DB2 (10.102.29.110) befinden sich außerhalb eines Docker-Hosts im Netzwerk. Die Clientanfrage stammt aus dem Internet und wird auf dem NetScaler CPX empfangen, der sie auf die beiden Server verteilt.
Um diese Kommunikation zwischen dem Client und den Servern über NetScaler CPX zu ermöglichen, müssen Sie zuerst die Portzuordnung konfigurieren, während Sie den NetScaler CPX-Container erstellen. Konfigurieren Sie dann die beiden Dienste im NetScaler CPX-Container so, dass sie die beiden Server darstellen. Konfigurieren Sie schließlich einen virtuellen Server mithilfe der NetScaler CPX-IP-Adresse und des nicht standardmäßigen zugeordneten HTTP-Ports 8080.
Beachten Sie, dass in der Beispielkonfiguration das 10.x.x.x-Netzwerk ein öffentliches Netzwerk bezeichnet.
Führen Sie zum Konfigurieren dieses Beispielszenarios den folgenden Befehl an der Linux-Shell-Eingabeaufforderung aus, während Sie den NetScaler CPX-Container erstellen:
docker run -dt -p 22 -p 80 -p 161/udp -p 8080:8080 --ulimit core=-1 --privileged=true cpx:6.2
<!--NeedCopy-->
Führen Sie dann die folgenden Befehle aus, indem Sie entweder die Funktion Jobs in NetScaler MAS oder mithilfe von NITRO-APIs verwenden:
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
<!--NeedCopy-->
Topologie 3: NetScaler CPX und Server, die auf verschiedenen Hosts bereitgestellt werden
In dieser Topologie werden die NetScaler CPX-Instanz und die Datenbankserver auf verschiedenen Docker-Hosts bereitgestellt, und der Clientverkehr stammt aus dem Internet. Diese Topologie kann in einer Produktionsbereitstellung verwendet werden, in der die NetScaler CPX-Instanz eine Reihe von Container-basierten Anwendungen oder Servern ausgleicht.
Das folgende Diagramm veranschaulicht diese Topologie.
In diesem Beispiel werden die NetScaler CPX-Instanz und ein Server (DB1) auf demselben Docker-Host mit der IP-Adresse 10.102.29.100 bereitgestellt. Vier weitere Server (DB2, DB3, DB4 und DB5) werden auf zwei verschiedenen Docker-Hosts bereitgestellt, 10.102.29.105 und 10.102.29.110.
Die aus dem Internet stammenden Clientanforderungen werden auf der NetScaler CPX-Instanz empfangen, die die Anforderungen dann auf die fünf Server verteilt. Um diese Kommunikation zu ermöglichen, müssen Sie Folgendes konfigurieren:
-
Legen Sie die Portzuordnung fest, während Sie Ihren NetScaler CPX-Container erstellen. In diesem Beispiel bedeutet dies, dass Sie Port 8080 des Containers an Port 8080 auf dem Host weiterleiten müssen. Wenn die Clientanforderung auf Port 8080 des Hosts eintrifft, wird sie Port 8080 des CPX-Containers zugeordnet.
-
Konfigurieren Sie die fünf Server als Dienste auf der NetScaler CPX-Instanz. Sie müssen eine Kombination aus der jeweiligen Docker-Host-IP-Adresse und dem zugeordneten Port verwenden, um diese Dienste festzulegen.
-
Konfigurieren Sie einen VIP auf der NetScaler CPX-Instanz, um die Clientanfrage zu empfangen. Dieser VIP sollte durch die NetScaler CPX-IP-Adresse und den Port 8080 dargestellt werden, der Port 8080 des Hosts zugeordnet wurde.
-
Binden Sie die Dienste abschließend an den VIP.
Beachten Sie, dass in der Beispielkonfiguration das 10.x.x.x-Netzwerk ein öffentliches Netzwerk bezeichnet.
Führen Sie zum Konfigurieren dieses Beispielszenarios den folgenden Befehl an der Linux-Shell-Eingabeaufforderung aus, während Sie den NetScaler CPX-Container erstellen:
docker run -dt -p 22 -p 80 -p 161/udp -p 8080:8080 --ulimit core=-1 --privileged=true cpx:6.2
<!--NeedCopy-->
Führen Sie die folgenden Befehle aus, indem Sie entweder die Funktion Jobs in NetScaler MAS oder mithilfe von NITRO-APIs verwenden:
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 HTTP 172.17.0.2 8080
bind 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
<!--NeedCopy-->