Configurer Citrix ADC CPX dans Kubernetes à l’aide de ConfigMaps

Dans Kubernetes, vous pouvez configurer l’instance Citrix ADC CPX à l’aide de ConfigMaps. À l’aide de ConfigMaps, vous pouvez configurer dynamiquement l’instance Citrix ADC CPX lors du démarrage de l’instance.

Créez un fichier de configuration cpx.conf qui inclut la configuration spécifique à Citrix ADC et les commandes shell bash que vous souhaitez exécuter dynamiquement sur l’instance Citrix ADC CPX. La structure du fichier de configuration nécessite deux types de balises, #Citrix ADC Commands et #Shell Commands. Sous la balise #Citrix ADC Commands, vous devez ajouter toutes les commandes Citrix ADC pour configurer la configuration spécifique à Citrix ADC sur l’instance Citrix ADC CPX. Sous la balise #Shell Commands, vous devez ajouter les commandes shell que vous souhaitez exécuter sur l’instance Citrix ADC CPX.

Important :

  • Les balises peuvent être répétées plusieurs fois dans le fichier de configuration.
  • Le fichier de configuration peut également inclure des commentaires. Ajoutez un caractère « # » avant les commentaires.
  • Les balises ne sont pas sensibles à la casse.
  • S’il existe des scénarios d’échec lors du déploiement du conteneur Citrix ADC CPX avec le fichier de configuration, les échecs sont consignés dans le fichier ns.log.
  • Après le démarrage de l’instance Citrix ADC CPX, si vous modifiez le ConfigMap, la configuration mise à jour est appliquée uniquement lorsque l’instance Citrix ADC CPX est redémarrée.

Voici un exemple de fichier de configuration :

#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-->

Une fois que vous avez créé le fichier de configuration, vous devez créer un ConfigMap à partir du fichier de configuration à l’aide de la commande kubectl create configmap.

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

Dans l’exemple ci-dessus, vous pouvez créer un ConfigMap, cpx-config basé sur le fichier de configuration cpx.conf. Vous pouvez ensuite utiliser ce ConfigMap dans le fichier YAML utilisé pour déployer l’instance Citrix ADC CPX.

Vous pouvez afficher le ConfigMap créé à l’aide de la commande kubectl get configmap. root@node1:~/yaml# kubectl get configmap cpx-config -o yaml

Échantillon :

    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-->

Vous pouvez spécifier le ConfigMap créé, cpx-config dans le fichier YAML utilisé pour déployer l’instance Citrix ADC CPX, comme indiqué ci-dessous :

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-->

Une fois que l’instance Citrix ADC CPX est déployée et démarre la configuration spécifiée dans le ConfigMap, cpx-config elle est appliquée à l’instance Citrix ADC CPX.

Configurer Citrix ADC CPX dans Kubernetes à l’aide de ConfigMaps

Dans cet article