ConfigMapsを使用してKubernetesでNetScaler CPXを構成する

最終公開日 : Oct 02, 2026
Kubernetesでは、ConfigMapsを使用してNetScaler CPXインスタンスを構成できます。ConfigMapsを使用すると、インスタンスの起動中にNetScaler CPXインスタンスを動的に構成できます。
NetScaler CPXインスタンスで動的に実行したいNetScaler固有の構成とbashシェルコマンドを含むcpx.conf構成ファイルを作成します。構成ファイルの構造には、#NetScaler Commandsと#Shell Commandsの2種類のタグが必要です。#NetScaler Commandsタグの下には、NetScaler CPXインスタンスでNetScaler固有の構成を設定するためのすべてのNetScalerコマンドを追加する必要があります。#Shell Commandsタグの下には、NetScaler CPXインスタンスで実行したいシェルコマンドを追加する必要があります。
重要:
  • タグは構成ファイル内で複数回繰り返すことができます。
  • 構成ファイルにはコメントを含めることもできます。コメントの前に「#」文字を追加してください。
  • タグは大文字と小文字を区別しません。
  • 構成ファイルを使用してNetScaler CPXコンテナを展開する際に障害が発生した場合、その障害はns.logファイルに記録されます。
  • NetScaler CPXインスタンスの起動後、ConfigMapを変更した場合、更新された構成はNetScaler CPXインスタンスが再起動されたときにのみ適用されます。
以下は構成ファイルのサンプルです。
#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
構成ファイルを作成したら、kubectl create configmapコマンドを使用して構成ファイルからConfigMapを作成する必要があります。
kubectl create configmap cpx-config --from-file=cpx.conf
上記の例では、構成ファイルcpx.confに基づいてConfigMap cpx-configを作成できます。その後、このConfigMapをNetScaler CPXインスタンスの展開に使用するYAMLファイルで使用できます。
kubectl get configmapコマンドを使用して、作成されたConfigMapを表示できます。 root@node1:~/yaml# kubectl get configmap cpx-config -o yaml
サンプル:
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
作成したConfigMap cpx-configを、NetScaler CPXインスタンスの展開に使用するYAMLファイルで次のように指定できます。
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
NetScaler CPXインスタンスがデプロイされ、ConfigMapで指定された構成が開始されると、cpx-config がNetScaler CPXインスタンスに適用されます。