Product Documentation

ConfigMapsを使用したKubernetesでのNetScaler CPXの構成

2018年3月23日

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ファイルで使用できます。

作成したConfigMapは、kubectl get 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: "cpx:latest"
        securityContext:
            privileged: true
        volumeMounts:
            - name: config-volume
              mountPath: /cpx/conf
        env:
            - name: "EULA"
              value: "yes"
            - name: "NS_NETMODE"
              value: "HOST"
            - name: "kubernetes_url"
              value: "https://10.106.76.31:6443"
            - name: "NS_MGMT_SERVER"
              value: "10.106.76.144"
            - name: "NS_MGMT_FINGER_PRINT"
              value: "A6:1F:7C:16:90:42:52:C9:0F:74:59:28:E7:A5:D6:D6:3C:6D:DC:DE"
            - name: "NS_ROUTABLE"
              value: "FALSE"
            - name: "KUBERNETES_TASK_ID"
        valueFrom:
        fieldRef:
        fieldPath: metadata.name
        imagePullPolicy: Never
        volumes:
            - name: config-volume
        configMap:
            name: cpx-config
        nodeSelector:
            node: node1

NetScaler CPXが展開され、ConfigMapに指定された構成を開始すると、NetScaler CPXインスタンスにcpx-configが適用されます。

ConfigMapsを使用したKubernetesでのNetScaler CPXの構成

In this article