ConfigMapsを使用したKubernetesでのNetScaler CPXの構成
Kubernetesでは、ConfigMapsを使用してNetScaler CPXインスタンスを構成できます。ConfigMapsを使用すると、インスタンスの起動時にNetScaler CPXインスタンスを動的に構成できます。
cpx.conf
NetScaler CPXインスタンスで動的に実行するNetScaler ADC固有の構成とbashシェルコマンドを含む構成ファイルを作成します。構成ファイルの構造には、#Citrix ADC Commands
と#Shell Commands
の2種類のタグが必要です。 #Citrix ADC Commands
タグの下に、NetScaler CPXインスタンスでNetScaler ADC固有の構成を構成するためのすべてのNetScaler ADCコマンドを追加する必要があります。#Shell Commands
タグの下で、NetScaler CPXインスタンスで実行するすべてのシェルコマンドを追加する必要があります。
重要:
- このタグは、構成ファイル内で複数回繰り返すことができます。
- 構成ファイルにはコメントを含めることもできます。コメントの前に「#」の文字を追加してください。
- タグでは大文字と小文字を区別しません。
- NetScaler CPXコンテナを構成ファイルとともに展開する際に障害が発生すると、それらの障害は
ns.log
ファイルに記録されます。- NetScaler CPXインスタンスの起動後、ConfigMapを変更すると、更新された構成はNetScaler CPXインスタンスが再起動された時にのみ適用されます。
次に、構成ファイルの例を示します:
#Citrix ADC 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
#Citrix ADC Commands
add lb vserver v2 http
#Shell Commands
echo "this is a 1" >> /etc/a.txt
#Citrix ADC Commands
add lb vserver v3 http
<!--NeedCopy-->
構成ファイルを作成したら、kubectl create configmap
コマンドを使用して、構成ファイルからConfigMapを作成する必要があります。
kubectl create configmap cpx-config --from-file=cpx.conf
<!--NeedCopy-->
上記の例では、構成ファイル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: |
#Citrix ADC 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
#Citrix ADC Commands
add lb vserver v2 http
#Shell Commands
echo "this is a 1" >> /etc/a.txt
#Citrix ADC 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-->
次に示すとおり、作成した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.0-36.28"
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.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-->
NetScaler CPXが展開され、ConfigMapに指定された構成を開始すると、NetScaler CPXインスタンスにcpx-config
が適用されます。