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

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: "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に指定された構成を開始すると、NetScaler CPXインスタンスにcpx-configが適用されます。

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