Bereitstellen einer Citrix ADC CPX-Instanz in Docker

Citrix ADC CPX-Instanzen sind als Docker-Imagedatei in der Quay-Container-Registrierung verfügbar. Um eine Instanz bereitzustellen, laden Sie das Citrix ADC 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 Folgendes sicher:

  • Das Docker-Hostsystem verfügt über mindestens:
    • 1 CPU

    • 2 GB RAM

      Hinweis: Für eine bessere Citrix ADC CPX-Leistung können Sie die Anzahl der Verarbeitungsmodule definieren, die die Citrix ADC 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: Citrix ADC CPX hat Probleme beim Ausführen auf Ubuntu Version 16.04.5, Kernelversion 4.4.0-131-generic. Es wird daher nicht empfohlen, Citrix ADC CPX auf Ubuntu Version 16.04.5, Kernelversion 4.4.0-131-generic auszuführen.

    Hinweis: Die folgenden Kubelet- und Kube-Proxy-Versionen weisen einige Sicherheitslücken auf und es wird nicht empfohlen, Citric ADC CPX mit diesen Versionen zu verwenden:

    • kubelet/kube-proxy v1.18.0-1.18.3
    • kubelet/kube-proxy v1.17.0-1.17.6
    • kubelet/kube-proxy <=1.16.10

    Informationen zur Minderung dieser Sicherheitsanfälligkeit finden Sie unter Mindern dieses Sicherheitsrisikos.

Citrix ADC CPX-Image von Quay herunterladen

Sie können das Citrix ADC CPX-Image mit dem docker pull Befehl aus der Quay-Container-Registrierung herunterladen und in Ihrer Umgebung bereitstellen. Verwenden Sie den folgenden Befehl, um das Citrix ADC CPX-Image aus der Quay-Container-Registrierung herunterzuladen:

    docker pull quay.io/citrix/citrix-k8s-cpx-ingress:13.0-xx.xx

Wenn Sie beispielsweise die Version 13.0-64.35 herunterladen möchten, verwenden Sie den folgenden Befehl:

    docker pull quay.io/citrix/citrix-k8s-cpx-ingress:13.0-64.35

Verwenden Sie den folgenden Befehl, um zu überprüfen, ob das Citrix ADC CPX-Image in Docker-Images installiert ist:

    root@ubuntu:~# docker images | grep 'citrix-k8s-cpx-ingress'
    quay.io/citrix/citrix-k8s-cpx-ingress                  13.0-64.35          952a04e73101        2 months ago        469 MB

Sie können das neueste Citrix ADC CPX-Image aus der Quay-Container-Registrierungbereitstellen.

Hinweis: Es wird empfohlen, das neueste Citrix ADC CPX-Image aus der Quay-Container-Registrierung zu verwenden, um die neuesten Funktionen von Citrix ADC CPX nutzen zu können.

Bereitstellen der Citrix ADC CPX-Instanz mithilfe des Docker-Run-Befehls

Auf dem Host können Sie eine Citrix ADC CPX-Instanz im Docker-Container installieren, indem Sie das Citrix ADC CPX Docker-Image verwenden, das Sie auf den Host geladen haben. Installieren Sie mit dem Befehl docker run die Citrix ADC CPX-Instanz mit der Citrix ADC CPX-Standardkonfiguration.

Wichtig:

Wenn Sie Citrix ADC 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 Citrix ADC CPX-Instanz bereitstellen.

Installieren Sie die Citrix ADC 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:13.0-x.x
<!--NeedCopy-->

In diesem Beispiel wird ein Container erstellt, der auf dem Citrix ADC CPX Docker-Imagemycpxbasiert.

Der-PParameter ist zwingend erforderlich. Docker soll die Ports zuordnen, die vom Citrix ADC 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 Citrix ADC 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 Citrix ADC CPX im Host-Bereitstellungsmodus ausführen, müssen Sie dem Citrix ADC CPX alle Systemberechtigungen bereitstellen. Wenn Sie den Citrix ADC CPX im Bridge-Modus mit einem oder mehreren Kernen ausführen möchten, können Sie anstelle dieser Option die --cap-add=NET_ADMIN Option verwenden. Mit --cap-add=NET_ADMINdieser Option können Sie den Citrix ADC 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

Ignorieren Sie diese Option, wenn Sie Citrix ADC CPX in einem Bridge- oder keinem Netzwerk ausführen.

Das -e NS_NETMODE="HOST" ist eine Citrix ADC CPX-spezifische Umgebungsvariable, mit der Sie angeben können, dass der Citrix ADC CPX im Hostmodus gestartet wird. Sobald Citrix ADC CPX im Hostmodus gestartet wurde, konfiguriert es 4 Standard-iptables-Regeln auf einem Hostcomputer für den Verwaltungszugriff auf den Citrix ADC 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

Ignorieren Sie diese Umgebungsvariable, wenn Sie Citrix ADC CPX in einem Bridge- oder keinem Netzwerk ausführen.

Der-e CPX_CORESist eine optionale Citrix ADC CPX-spezifische Umgebungsvariable. Sie können damit die Leistung der Citrix ADC CPX-Instanz verbessern, indem Sie die Anzahl der Verarbeitungsmodule definieren, die der Citrix ADC CPX-Container starten soll.

Hinweis: Citrix ADC CPX kann 1 bis 16 Kerne unterstützen.

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 = yesist eine obligatorische Citrix ADC 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=CP1000Parameter gibt den Citrix ADC CPX-Lizenztyp an.

Wenn Sie Docker in einem Host-Netzwerk ausführen, können Sie dem Citrix ADC 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 Citrix ADC CPX-Container gespeichert, bis Sie den Citrix ADC CPX-Container deinstallieren. Wenn der Citrix ADC CPX-Container bereitgestellt wird, werden alle zugewiesenen Netzwerkschnittstellen dem Citrix ADC-Netzwerknamespace hinzugefügt.

Hinweis

Wenn Sie Citrix ADC CPX im Bridge-Netzwerk ausführen, können Sie das Container-Netzwerk ändern, z. B. eine andere Netzwerkverbindung zum Container konfigurieren oder ein vorhandenes Netzwerk entfernen. Stellen Sie dann sicher, dass Sie den Citrix ADC 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:13.0-x.x
<!--NeedCopy-->

Das -e CPX_CONFIG ist eine Citrix ADC CPX-spezifische Umgebungsvariable, mit der Sie die Durchsatzleistung des Citrix ADC CPX-Containers steuern können. Wenn das Citrix ADC 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 Citrix ADC CPX-Containers zu steuern. Sie müssen der CPX_CONFIG Umgebungsvariablen folgende Werte im JSON-Format angeben:

  • Wenn Sie möchten, dass der Citrix ADC CPX-Container in Leerlaufszenarien CPU liefert, definieren Sie {"YIELD” : “Yes”}
  • Wenn Sie möchten, dass der Citrix ADC 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:13.0-x.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:13.0-x.x
<!--NeedCopy-->

Der–vParameter ist ein optionaler Parameter, der den Bereitstellungspunkt des Citrix ADC CPX-Mount-Verzeichnisses angibt/cpx. Ein Einhängepunkt ist ein Verzeichnis auf dem Host, in dem Sie das/cpxVerzeichnis mounten. Das/cpxVerzeichnis speichert die Protokolle, Konfigurationsdateien, SSL-Zertifikate und Core-Dump-Dateien. Im Beispiel ist der Bereitstellungspunkt/var/cpx und das Citrix ADC 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:13.0-x.x
<!--NeedCopy-->

Wobei 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 einer leichteren Version von Citrix ADC CPX mithilfe des Docker-Befehls run

Citrix bietet eine leichtere Version von Citrix ADC CPX, die weniger Laufzeitspeicher verbraucht. Die leichtere Version von Citrix ADC CPX kann als Beiwagen in Service-Mesh-Bereitstellungen bereitgestellt werden.

Die leichtere Version von Citrix ADC CPX unterstützt die folgenden Funktionen:

  • Verfügbarkeit der Anwendung
    • L4-Loadbalancing und L7-Content Switching
    • SSL Offloading
    • IPv6-Protokollübersetzung
  • Anwendungssicherheit
    • L7 Rewrite und Responder
  • Einfache Verwaltbarkeit
    • Webprotokollierung
    • AppFlow

Um die leichtere Version von Citrix ADC CPX zu instanziieren, legen Sie die NS_CPX_LITE Umgebungsvariable fest, während Sie den Docker run Befehl ausführen.

docker run -dt -P --privileged=true -e NS_CPX_LITE=1 -e EULA=yes --name <container_name> --ulimit core=-1 <REPOSITORY>:<TAG>
<!--NeedCopy-->

Im folgenden Beispiel wird ein Lightweight-Container basierend auf dem Citrix ADC CPX-Image erstellt.

docker run –dt -P --privileged=true -e NS_CPX_LITE=1 -e EULA=yes -–name lightweight --ulimit core=-1 cpx:latest
<!--NeedCopy-->

Standardmäßig newnslog ist die Protokollierung mit in der leichteren Version von Citrix ADC CPX deaktiviert. Um es zu aktivieren, müssen Sie die NS_ENABLE_NEWNSLOG Umgebungsvariable auf 1 setzen, während Sie die leichtere Version von Citrix ADC CPX aufrufen.

Das folgende Beispiel zeigt, wie Sie die newnslog Protokollierung mithilfe der leichteren Version von Citrix ADC CPX aktivieren.

docker run -dt --privileged=true --ulimit core=-1 -e EULA=yes -e NS_CPX_LITE=1 -e NS_ENABLE_NEWNSLOG=1 cpx:<tag>
<!--NeedCopy-->

Hinweis: Die leichtere Version von CPX unterstützt nur Single-Core (CPX_CORES=1).

Bereitstellen von Citrix ADC CPX-Instanzen mithilfe von Docker Compose

Sie können das Compose-Tool von Docker verwenden, um eine einzelne Citrix ADC CPX-Instanz oder mehrere Citrix ADC CPX-Instanzen bereitzustellen. Um Citrix ADC CPX-Instanzen mithilfe von Docker Compose bereitzustellen, müssen Sie zuerst eine Compose-Datei schreiben. Diese Datei gibt das Citrix ADC CPX-Image, die Ports an, die Sie für die Citrix ADC CPX-Instanz öffnen möchten, und die Berechtigungen für Ihre Citrix ADC CPX-Instanz.

Wichtig

Stellen Sie sicher, dass Sie das Docker Compose-Tool auf dem Host installiert haben.

So stellen Sie mehrere Citrix ADC CPX-Instanzen bereit:

  1. 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 Citrix ADC CPX-Images.
  • privilegiert: true bietet alle Root-Rechte für die Citrix ADC CPX-Instanz.
  • cap_add bietet Netzwerkberechtigungen für die Citrix ADC CPX-Instanz.
  • ** <host_directory_path>bezeichnet das Verzeichnis auf dem Docker-Host, das Sie für die Citrix ADC CPX-Instanz mounten möchten.
  • ** <number_processing_engine>ist die Anzahl der Verarbeitungsmodule, die die Citrix ADC 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:13.0-x.x
    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 Citrix ADC 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 Citrix ADC 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 Citrix ADC CPX-Instanz bereitstellen möchten, führen Sie den folgenden Befehl aus: docker-compose -f <compose_file_name> up –d