Bereitstellen einer NetScaler CPX-Instanz in Docker
NetScaler CPX-Instanzen sind als Docker-Imagedatei in der Quay-Container-Registrierung verfügbar. Um eine Instanz bereitzustellen, laden Sie das NetScaler CPX-Image aus der Quay-Container-Registrierung herunter und stellen Sie die Instanz dann mit dem Befehl docker run
oder mit Docker Compose Tool bereit.
Voraussetzungen
Stellen Sie sicher, dass:
- Das Docker-Hostsystem verfügt über mindestens:
-
1 CPU
-
2 GB RAM
Hinweis: Für eine bessere NetScaler CPX-Leistung können Sie die Anzahl der Verarbeitungs-Engines definieren, die die NetScaler CPX-Instanz starten soll. Stellen Sie für jede zusätzliche Verarbeitungsengine, die Sie hinzufügen, sicher, dass der Docker-Host die entsprechende Anzahl von vCPUs und die Menge an Arbeitsspeicher in GB enthält. Wenn Sie beispielsweise 4 Verarbeitungsmodule hinzufügen möchten, muss der Docker-Host 4 vCPUs und 4 GB Speicher enthalten.
-
-
Auf dem Docker-Hostsystem wird Linux Ubuntu Version 14.04 oder höher ausgeführt.
-
Docker Version 1.12 ist auf dem Hostsystem installiert. Informationen zur Docker-Installation unter Linux finden Sie in derDocker-Dokumentation.
-
Docker-Host hat Internetkonnektivität.
Hinweis: NetScaler CPX hat Probleme beim Ausführen auf Ubuntu Version 16.04.5, Kernelversion 4.4.0-131-generic. Es wird daher nicht empfohlen, NetScaler CPX auf Ubuntu Version 16.04.5, Kernelversion 4.4.0-131-generic auszuführen.
NetScaler CPX-Image von Quay herunterladen
Sie können das NetScaler CPX-Image mit dem docker pull
Befehl aus der Quay-Container-Registrierung herunterladen und es in Ihrer Umgebung bereitstellen. Verwenden Sie den folgenden Befehl, um das NetScaler CPX-Image aus der Quay-Container-Registrierung herunterzuladen:
docker pull quay.io/citrix/citrix-k8s-cpx-ingress:tag
In diesem Befehl gibt Tag das Citrix NetScaler CPX-Image an.
Wenn Sie beispielsweise die Version 12.1-51.16 herunterladen möchten, verwenden Sie den folgenden Befehl:
docker pull quay.io/citrix/citrix-k8s-cpx-ingress:12.1-51.16
Verwenden Sie den folgenden Befehl, um zu überprüfen, ob NetScaler CPX-Image in Docker-Images installiert ist:
root@ubuntu:~# docker images | grep 'citrix-k8s-cpx-ingress'
quay.io/citrix/citrix-k8s-cpx-ingress 12.1-51.16 952a04e73101 2 months ago 469 MB
Hinweis: Es wird empfohlen, das neueste NetScaler CPX-Image aus der Quay-Container-Registrierung zu verwenden, um die neuesten Funktionen von NetScaler CPX nutzen zu können.
Bereitstellen der NetScaler CPX-Instanz mithilfe des Docker-Run-Befehls
Auf dem Host können Sie eine NetScaler CPX-Instanz im Docker-Container installieren, indem Sie das NetScaler CPX Docker-Image verwenden, das Sie auf den Host geladen haben. Installieren Sie mit dem Befehl docker run
die NetScaler CPX-Instanz mit der NetScaler CPX-Standardkonfiguration.
Wichtig:
Wenn Sie NetScaler CPX Express von heruntergeladen haben https://www.citrix.com/products/netscaler-adc/cpx-express.html, lesen und verstehen Sie die Endbenutzer-Lizenzvereinbarung (EULA), die unter: verfügbar ist,https://www.citrix.com/products/netscaler-adc/cpx-express.htmlund akzeptieren Sie die Endbenutzer-Lizenzvereinbarung, während Sie die NetScaler CPX-Instanz bereitstellen.
Installieren Sie die NetScaler CPX-Instanz im Docker-Container, indem Sie den folgenden Docker-Run-Befehl verwenden:
docker run -dt -P --privileged=true --net=host –e NS_NETMODE=”HOST” -e CPX_CORES=<number of cores> --name <container_name> --ulimit core=-1 -e CPX_NW_DEV='<INTERFACES>' -e CPX_CONFIG=’{“YIELD”:”NO”}’ -e LS_IP=<LS_IP_ADDRESS> -e LS_PORT=<LS_PORT> e PLATFORM=CP1000 -v <host_dir>:/cpx <REPOSITORY>:<TAG>
<!--NeedCopy-->
docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e CPX_NW_DEV='eth1 eth2' -e CPX_CORES=5 –e CPX_CONFIG='{"YIELD":"No"}' -e LS_IP=10.102.38.134 -e PLATFORM=CP1000 -v /var/cpx:/cpx --name cpx_host cpx:12.1-48.xx
<!--NeedCopy-->
In diesem Beispiel wird ein Container mit dem Namen mycpx basierend auf dem NetScaler CPX Docker-Image erstellt.
Der-P
Parameter ist zwingend erforderlich. Docker soll die Ports zuordnen, die vom NetScaler CPX Docker-Image im Container verfügbar sind. Das bedeutet, dass die Ports 9080, 22, 9443 und 161/UDP den Ports auf dem Docker-Host zugeordnet werden, die zufällig aus dem benutzerdefinierten Bereich ausgewählt werden. Dieses Mapping wird durchgeführt, um Konflikte zu vermeiden. Wenn Sie später mehrere NetScaler CPX-Container auf demselben Docker-Host erstellen. Die Portzuordnungen sind dynamisch und werden bei jedem Start oder Neustart des Containers festgelegt. Die Ports werden wie folgt verwendet:
- 9080 wird für HTTP verwendet
- 9443 wird für HTTPs verwendet
- 22 für SSH verwendet
- 161/UDP wird für SNMP verwendet.
Wenn Sie statische Portzuordnungen wünschen, verwenden Sie den Parameter -p, um sie manuell festzulegen.
Die --privileged=true
Option wird verwendet, um den Container im privilegierten Modus auszuführen. Wenn Sie den NetScaler CPX mit mehreren Kernen ausführen, müssen Sie dem NetScaler CPX alle Systemberechtigungen bereitstellen. Wenn Sie den NetScaler CPX mit einem einzelnen Kern ausführen möchten, müssen Sie anstelle dieser Option die --cap-add=NET_ADMIN
Option verwenden. Mit --cap-add=NET_ADMIN
dieser Option können Sie den NetScaler CPX-Container mit vollen Netzwerkberechtigungen ausführen.
Der**--net=host
ist eine standardmäßige Docker-Ausführungsbefehlsoption, die angibt, dass der Container im Host-Netzwerkstapel ausgeführt wird und Zugriff auf alle Netzwerkgeräte hat.
Hinweis
Wenn Sie NetScaler CPX in Bridge oder in keinem Netzwerk ausführen, ignorieren Sie diese Option.
Das -e NS_NETMODE="HOST"
ist eine NetScaler CPX-spezifische Umgebungsvariable, mit der Sie angeben können, dass der NetScaler CPX im Hostmodus gestartet wird. Sobald NetScaler CPX im Hostmodus gestartet wurde, konfiguriert es vier standardmäßige iptable-Regeln auf dem Hostcomputer für den Verwaltungszugriff auf den NetScaler CPX. Es verwendet die folgenden Ports:
- 9995 für HTTP
- 9996 für HTTPS
- 9997 für SSH
- 9998 für SNMP
Wenn Sie verschiedene Ports angeben möchten, können Sie die folgenden Umgebungsvariablen verwenden:
- -e NS_HTTP_PORT=
- -e NS_HTTPS_PORT=
- -e NS_SSH_PORT=
- -e NS_SNMP_PORT=
Hinweis
Wenn Sie NetScaler CPX in Bridge oder in keinem Netzwerk ausführen, ignorieren Sie diese Umgebungsvariable.
Der-e CPX_CORES
ist eine optionale NetScaler CPX-spezifische Umgebungsvariable. Sie können damit die Leistung der NetScaler CPX-Instanz verbessern, indem Sie die Anzahl der Verarbeitungsmodule definieren, die der NetScaler CPX-Container starten soll.
Hinweis
Stellen Sie für jede zusätzliche Verarbeitungsengine, die Sie hinzufügen, sicher, dass der Docker-Host die entsprechende Anzahl von vCPUs und die Menge an Arbeitsspeicher in GB enthält. Wenn Sie beispielsweise 4 Verarbeitungsmodule hinzufügen möchten, muss der Docker-Host 4 vCPUs und 4 GB Speicher enthalten.
Die-e EULA = yes
ist eine obligatorische NetScaler CPX-spezifische Umgebungsvariable, die erforderlich ist, um zu überprüfen, ob Sie die Endbenutzer-Lizenzvereinbarung (EULA) gelesen und verstanden haben, verfügbar unter:https://www.citrix.com/products/netscaler-adc/cpx-express.html.
Der-e PLATFORM=CP1000
Parameter gibt den NetScaler CPX-Lizenztyp an.
Wenn Sie Docker in einem Host-Netzwerk ausführen, können Sie dem NetScaler CPX-Container mithilfe der -e CPX_NW_DEV
Umgebungsvariablen dedizierte Netzwerkschnittstellen zuweisen. Sie müssen die Netzwerkschnittstellen durch ein Leerzeichen getrennt definieren. Die von Ihnen definierten Netzwerkschnittstellen werden vom NetScaler CPX-Container gespeichert, bis Sie den NetScaler CPX-Container deinstallieren. Wenn der NetScaler CPX-Container bereitgestellt wird, werden alle zugewiesenen Netzwerkschnittstellen dem NetScaler-Netzwerknamespace hinzugefügt.
Hinweis
Wenn Sie NetScaler CPX in einem Bridge-Netzwerk ausführen, können Sie das Containernetzwerk ändern, z. B. eine andere Netzwerkverbindung zum Container konfigurieren oder ein vorhandenes Netzwerk entfernen. Stellen Sie dann sicher, dass Sie den NetScaler CPX-Container neu starten, um das aktualisierte Netzwerk zu verwenden.
docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e EULA=yes -e CPX_NW_DEV='eth1 eth2' -e CPX_CORES=5 -e PLATFORM=CP1000 --name cpx_host cpx:12.0-53.x
<!--NeedCopy-->
Das -e CPX_CONFIG
ist eine NetScaler CPX-spezifische Umgebungsvariable, mit der Sie die Durchsatzleistung des NetScaler CPX-Containers steuern können. Wenn das NetScaler CPX keinen eingehenden Datenverkehr zur Verarbeitung empfängt, liefert es die CPU während dieser Leerlaufzeit, was zu einer geringen Durchsatzleistung führt. In solchen Szenarien können Sie die CPX_CONFIG
Umgebungsvariable verwenden, um die Durchsatzleistung des NetScaler CPX-Containers zu steuern. Sie müssen der CPX_CONFIG
Umgebungsvariablen die folgenden Werte im JSON-Format angeben:
- Wenn Sie möchten, dass der NetScaler CPX-Container in Leerlaufszenarien CPU liefert, definieren Sie
{"YIELD” : “Yes”}
- Wenn Sie möchten, dass der NetScaler CPX-Container die CPU in Leerlaufszenarien nicht nachgibt, sodass Sie eine hohe Durchsatzleistung erzielen können, definieren Sie
{“YIELD” : “No”}
docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e EULA=yes -e CPX_CORES=5 –e CPX_CONFIG='{"YIELD":"No"}' -e PLATFORM=CP1000 --name cpx_host cpx:12.0-51.x
<!--NeedCopy-->
docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e EULA=yes -e CPX_CORES=5 –e CPX_CONFIG='{"YIELD":"Yes"}' -e PLATFORM=CP1000 --name cpx_host cpx:12.0-51.xx
<!--NeedCopy-->
Der–v
Parameter ist ein optionaler Parameter, der den Bereitstellungspunkt des NetScaler CPX-Mount-Verzeichnisses angibt/cpx
. Ein Einhängepunkt ist ein Verzeichnis auf dem Host, in dem Sie das/cpx
Verzeichnis mounten. Das/cpx
Verzeichnis speichert die Protokolle, Konfigurationsdateien, SSL-Zertifikate und Core-Dump-Dateien. Im Beispiel ist der Bereitstellungspunkt/var/cpx
und das NetScaler CPX-Mount-Verzeichnis ist/cpx
.
Wenn Sie eine Lizenz erworben haben oder über eine Evaluierungslizenz verfügen, können Sie die Lizenz auf einen Lizenzserver hochladen und den Speicherort des Lizenzservers mit dem Befehl Docker Run angeben, indem Sie den-e LS_IP=<LS_IP_ADDRESS> -e LS_PORT=<LS_PORT>
Parameter verwenden. In diesem Fall müssen Sie die Endbenutzer-Lizenzvereinbarung nicht akzeptieren.
docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e CPX_CORES=5 –e CPX_CONFIG='{"YIELD":"No"}' -e LS_IP=10.102.38.134 -e PLATFORM=CP1000 --name cpx_host cpx:12.0-51.xx
<!--NeedCopy-->
Dabei gilt:
-
LS_IP_ADDRESS
ist die IP-Adresse des Lizenzservers. -
LS_PORT
ist der Port des Lizenzservers.
Sie können die Images, die auf Ihrem System ausgeführt werden, und die Ports, die den Standardports zugeordnet sind, mithilfe des folgenden Befehls anzeigen: docker ps
Bereitstellen von NetScaler CPX-Instanzen mithilfe von Docker Compose
Sie können das Compose-Tool von Docker verwenden, um eine einzelne NetScaler CPX-Instanz oder mehrere NetScaler CPX-Instanzen bereitzustellen. Um NetScaler CPX-Instanzen mithilfe von Compose bereitzustellen, müssen Sie zuerst eine Compose-Datei schreiben. Diese Datei gibt das NetScaler CPX-Image, die Ports an, die Sie für die NetScaler CPX-Instanz öffnen möchten, und die Berechtigungen für Ihre NetScaler CPX-Instanz.
Wichtig
Stellen Sie sicher, dass Sie das Docker Compose-Tool auf dem Host installiert haben.
So stellen Sie mehrere NetScaler CPX-Instanzen bereit:
- Schreiben Sie eine Compose-Datei, wobei:
- <service-name> ist der Name des Dienstes, den Sie bereitstellen möchten.
- image:: <repository><tag>bezeichnet das Repository und die Versionen des NetScaler CPX-Images.
- privileged: true bietet alle Rootrechte für die NetScaler CPX-Instanz.
- cap_add bietet Netzwerkberechtigungen für die NetScaler CPX-Instanz.
- ** <host_directory_path>bezeichnet das Verzeichnis auf dem Docker-Host, das Sie für die NetScaler CPX-Instanz mounten möchten.
- ** <number_processing_engine>ist die Anzahl der Verarbeitungsmodule, die die NetScaler CPX-Instanz starten soll. Stellen Sie für jede zusätzliche Verarbeitungsengine sicher, dass der Docker-Host die entsprechende Anzahl von vCPUs und die Menge an Arbeitsspeicher in GB enthält. Wenn Sie beispielsweise 4 Verarbeitungsmodule hinzufügen möchten, muss der Docker-Host 4 vCPUs und 4 GB Speicher enthalten.
Die Compose-Datei folgt im Allgemeinen einem Format ähnlich:
<service-name>:
container_name:
image: <repository>:<tag>
ports:
- 22
- 9080
- 9443
- 161/udp
- 35021-35030
tty: true
cap_add:
- NET_ADMIN
ulimits:
core: -1
volumes:
- <host_directory_path>:/cpx
environment:
- EULA=yes
- CPX_CORES=<number_processing_engine>
- CPX_CONFIG='{"YIELD":"Yes"}'
<!--NeedCopy-->
CPX_0:
container_name: CPX_0
image: cpx:12.0-53.xx
ports:
- 9443
- 22
- 9080
- 161/udp
- 35021-35030
tty: true
cap_add:
- NET_ADMIN
ulimits:
core: -1
volumes:
- /root/test:/cpx
environment:
- CPX_CORES=2
- EULA=yes
<!--NeedCopy-->
Wenn Sie eine einzelne NetScaler CPX-Instanz bereitstellen möchten, müssen Sie der Compose-Datei die folgende Zeile hinzufügen: container_name:<name_of_container>
Führen Sie den folgenden Befehl aus, um mehrere NetScaler CPX-Instanzen bereitzustellen:
docker-compose -f <compose_file_name> scale <service-name>=<number of instances> up –d docker-compose -f docker-compose.yml scale cpxlb=3 up –d
Wenn Sie eine einzelne NetScaler CPX-Instanz bereitstellen möchten, führen Sie den folgenden Befehl aus: docker-compose -f <compose_file_name> up –d