Configurar NetScaler CPX en Kubernetes mediante ConfigMaps

En Kubernetes, puede configurar la instancia de NetScaler CPX mediante ConfigMaps. Con ConfigMaps, puede configurar dinámicamente la instancia de NetScaler CPX durante el inicio de la instancia.

Cree un archivo de configuración cpx.conf que incluya los comandos de configuración y bash shell específicos de Citrix ADC que quiera ejecutar de forma dinámica en la instancia de NetScaler CPX. La estructura del archivo de configuración requiere dos tipos de etiquetas, #Citrix ADC Commands y #Shell Commands. Bajo la etiqueta #Citrix ADC Commands, debe agregar todos los comandos de Citrix ADC para configurar la configuración específica de Citrix ADC en la instancia de NetScaler CPX. Debajo de la etiqueta #Shell Commands, debe agregar los comandos de shell que quiere ejecutar en la instancia de NetScaler CPX.

Importante:

  • Las etiquetas se pueden repetir varias veces en el archivo de configuración.
  • El archivo de configuración también puede incluir comentarios. Agregue un carácter “#” antes de los comentarios.
  • Las etiquetas no distinguen entre mayúsculas y minúsculas.
  • Si hay casos de error al implementar el contenedor NetScaler CPX con el archivo de configuración, los errores se registran en el archivo ns.log.
  • Una vez iniciada la instancia de NetScaler CPX, si cambia el ConfigMap, la configuración actualizada se aplica solo cuando se reinicia la instancia de NetScaler CPX.

A continuación se muestra un archivo de configuración de ejemplo:

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

Una vez que haya creado el archivo de configuración, debe crear un ConfigMap a partir del archivo de configuración mediante el comando kubectl create configmap.

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

En el ejemplo anterior, puede crear un ConfigMap, cpx-config basado en el archivo de configuración cpx.conf. A continuación, puede usar este ConfigMap en el archivo YAML que se utiliza para implementar la instancia de NetScaler CPX.

Puede ver el ConfigMap creado mediante el comando kubectl get configmap. root@node1:~/yaml# kubectl get configmap cpx-config -o yaml

Muestra:

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

Puede especificar el ConfigMap creado, cpx-config en el archivo YAML utilizado para implementar la instancia de NetScaler CPX, como se muestra a continuación:

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

Una vez que se implementa la instancia de NetScaler CPX is e inicia la configuración especificada en ConfigMap, cpx-config se aplica a la instancia de NetScaler CPX.

Configurar NetScaler CPX en Kubernetes mediante ConfigMaps

En este artículo