Konfigurieren von NetScaler CPX in Kubernetes mithilfe von ConfigMaps

In Kubernetes können Sie die NetScaler CPX-Instanz mithilfe von ConfigMaps konfigurieren. Mit ConfigMaps können Sie die NetScaler CPX-Instanz während des Starts der Instanz dynamisch konfigurieren.

Erstellen Sie eine cpx.conf Konfigurationsdatei, die NetScaler-spezifische Konfiguration und Bash-Shell-Befehle enthält, die Sie dynamisch auf der NetScaler CPX-Instanz ausführen möchten. Für die Struktur der Konfigurationsdatei sind zwei Typen von Tags erforderlich, #NetScaler Commands und #Shell Commands. Unter dem #NetScaler Commands Tag müssen Sie alle NetScaler-Befehle hinzufügen, um die NetScaler-spezifische Konfiguration auf der NetScaler CPX-Instanz zu konfigurieren. Unter dem #Shell Commands Tag müssen Sie die Shell-Befehle hinzufügen, die Sie auf der NetScaler CPX-Instanz ausführen möchten.

Wichtig:

  • Die Tags können in der Konfigurationsdatei mehrfach wiederholt werden.
  • Die Konfigurationsdatei kann auch Kommentare enthalten. Füge vor Kommentaren ein “#” -Zeichenhinzu.
  • Bei den Markierungen wird die Groß-/Kleinschreibung nicht beachtet
  • Wenn es bei der Bereitstellung des NetScaler CPX-Containers mit der Konfigurationsdatei Ausfallszenarien gibt, werden die Fehler in der ns.log Datei protokolliert.
  • Wenn Sie nach dem Start der NetScaler CPX-Instanz die ConfigMap ändern, wird die aktualisierte Konfiguration nur angewendet, wenn die NetScaler CPX-Instanz neu gestartet wird.

Im Folgenden finden Sie ein Beispiel für eine Konfigurationsdatei:

#NetScaler Commands
add lb vserver v1 http 1.1.1.1 80
add service s1 2.2.2.2 http 80
bind lb vserver v1 s1
#Shell Commands
touch /etc/a.txt
echo "this is a" > /etc/a.txt
#NetScaler Commands
add lb vserver v2 http
#Shell Commands
echo "this is a 1" >> /etc/a.txt
#NetScaler Commands
add lb vserver v3 http
<!--NeedCopy-->

Nachdem Sie die Konfigurationsdatei erstellt haben, müssen Sie mit dem kubectl create configmap Befehl eine ConfigMap aus der Konfigurationsdatei erstellen.

kubectl create configmap cpx-config --from-file=cpx.conf
<!--NeedCopy-->

Im obigen Beispiel können Sie eine ConfigMap erstellen, die auf der Konfigurationsdatei cpx.conf cpx-config basiert. Sie können diese ConfigMap dann in der YAML-Datei verwenden, die zum Bereitstellen der NetScaler CPX-Instanz verwendet wird.

Sie können die erstellte ConfigMap mit dem kubectl get configmap Befehl anzeigen. root@node1:~/yaml# kubectl get configmap cpx-config -o yaml

Musterbeispiel:

    apiVersion: v1
    data:
        cpx.conf: |
        #NetScaler Commands
            add lb vserver v1 http 1.1.1.1 80
            add service s1 2.2.2.2 http 80
            bind lb vserver v1 s1
        #Shell Commands
            touch /etc/a.txt
            echo "this is a" > /etc/a.txt
            echo "this is the file" >> /etc/a.txt
            ls >> /etc/a.txt
        #NetScaler Commands
            add lb vserver v2 http
        #Shell Commands
            echo "this is a 1" >> /etc/a.txt
        #NetScaler Commands
            add lb vserver v3 http
        #end of file
    kind: ConfigMap
    metadata:
        creationTimestamp: 2017-12-26T06:26:50Z
        name: cpx-config
        namespace: default
        resourceVersion: "8865149"
        selfLink: /api/v1/namespaces/default/configmaps/cpx-config
        uid: c1c7cb5b-ea05-11e7-914a-926745c10b02
<!--NeedCopy-->

Sie können die erstellte ConfigMap cpx-config in der YAML-Datei, die für die Bereitstellung der NetScaler CPX-Instanz verwendet wird, wie folgt angeben:

apiVersion: v1
kind: Pod
metadata:
  name: cpx-1
  labels:
    app: cpx-daemon
  annotations:
    NETSCALER_AS_APP: "True"
spec:
  hostNetwork: true
  containers:
  - name: cpx
    image: "quay.io/citrix/citrix-k8s-cpx-ingress:13.1-33.47"
    securityContext:
      privileged: true
    volumeMounts:
    - name: config-volume
      mountPath: /cpx/bootup_conf
    env:
      - name: "EULA"
        value: "yes"
      - name: "NS_NETMODE"
        value: "HOST"
      - name: "kubernetes_url"
        value: "https://10.90.248.101:6443"
      - name: "NS_MGMT_SERVER"
        value: "10.90.248.99"
      - name: "NS_MGMT_FINGER_PRINT"
        value: "19:71:A3:36:85:0A:2B:62:24:65:0F:7E:72:CC:DC:AD:B8:BF:53:1E"
      - name: "NS_ROUTABLE"
        value: "FALSE"
      - name: "KUBERNETES_TASK_ID"
        valueFrom:
          fieldRef:
            fieldPath: metadata.name
    imagePullPolicy: Never
  volumes:
  - name: config-volume
    configMap:
      name: cpx-config
<!--NeedCopy-->

Sobald die NetScaler CPX-Instanz bereitgestellt wurde und die in der ConfigMap angegebene Konfiguration startet, cpx-config wird sie auf die NetScaler CPX-Instanz angewendet.

Konfigurieren von NetScaler CPX in Kubernetes mithilfe von ConfigMaps

In diesem Artikel