Compatibilidad de ConfigMap con NetScaler Ingress Controller

Last published : Oct 02, 2026
El recurso de API ConfigMap contiene pares clave-valor de datos de configuración que se pueden consumir en pods o para almacenar datos de configuración para componentes del sistema como los controladores.
Los ConfigMaps le permiten separar sus configuraciones de sus pods y hacer que sus cargas de trabajo sean portátiles. Con los ConfigMaps, puede cambiar y administrar fácilmente las configuraciones de su carga de trabajo y reducir la necesidad de codificar datos de configuración en las especificaciones de los pods.
El NetScaler Ingress Controller admite los argumentos de línea de comandos de configuración y las variables de entorno mencionados en el despliegue del NetScaler Ingress Controller. Sin embargo, no puede actualizar estas configuraciones en tiempo de ejecución sin reiniciar el pod de NetScaler Ingress Controller. Con la compatibilidad con ConfigMap, puede actualizar la configuración automáticamente mientras el pod de NetScaler Ingress Controller sigue en ejecución. No es necesario reiniciar el pod después de la actualización.

Variables de entorno admitidas en NetScaler Ingress Controller

Los valores de las siguientes variables de entorno en NetScaler Ingress Controller se pueden especificar en un ConfigMap.
  • LOGLEVEL: Especifica los niveles de registro para controlar los registros generados por NetScaler Ingress Controller (depuración, información, crítico, etc.). El valor predeterminado es debug.
  • NS_HTTP2_SERVER_SIDE: Habilita HTTP2 para las configuraciones de grupos de servicios de NetScaler con posibles valores ON u OFF.
  • NS_PROTOCOL: Especifica el protocolo para establecer la sesión de ADC (HTTP/HTTPS). El valor predeterminado es http.
  • NS_PORT: Especifica el puerto para establecer una sesión. El valor predeterminado es 80.
  • NS_COOKIE_VERSION: Especifica la versión de la cookie de persistencia (0 o 1). El valor predeterminado es 0.
  • NS_DNS_NAMESERVER: Permite agregar servidores de nombres DNS en NetScaler VPX.
  • POD_IPS_FOR_SERVICEGROUP_MEMBERS: Especifica que se agregue la dirección IP del pod y el puerto como miembros del grupo de servicios en lugar de NodeIP y NodePort al configurar servicios de tipo LoadBalancer o NodePort en un NetScaler de nivel 1 externo.
  • IGNORE_NODE_EXTERNAL_IP: Especifica que se ignore una dirección IP externa y se agregue una dirección IP interna para NodeIP al configurar NodeIP para servicios de tipo LoadBalancer o NodePort en un NetScaler de nivel 1 externo.
  • FRONTEND_HTTP_PROFILE: Establece las opciones HTTP para el servidor virtual de front-end (plano de cliente), a menos que se anule por la anotación inteligente ingress.citrix.com/frontend-httpprofile en la definición de entrada.
  • FRONTEND_TCP_PROFILE: Establece las opciones TCP para el servidor virtual de front-end (lado del cliente), a menos que se anule mediante la anotación inteligente ingress.citrix.com/frontend-tcpprofile en la definición de entrada.
  • FRONTEND_SSL_PROFILE: Establece las opciones SSL para el servidor virtual de front-end (lado del cliente), a menos que se anule mediante la anotación inteligente ingress.citrix.com/frontend-sslprofile en la definición de entrada.
  • JSONLOG: Establezca este argumento en true si se requieren mensajes de registro en formato JSON.
  • NS_ADNS_IPS: Permite configurar NetScaler como un servidor ADNS.
Para obtener más información sobre las variables de entorno de perfil (FRONTEND_HTTP_PROFILE, FRONTEND_TCP_PROFILE y FRONTEND_SSL_PROFILE), consulte Configurar perfiles HTTP, TCP o SSL en NetScaler.
Nota:
Esta es una versión inicial de la compatibilidad con ConfigMap y actualmente solo admite algunos parámetros. Anteriormente, estos parámetros se podían configurar mediante variables de entorno, excepto el parámetro NS_HTTP2_SERVER_SIDE.

Configuración de la compatibilidad con ConfigMap para NetScaler Ingress Controller

Este ejemplo muestra cómo crear un ConfigMap y aplicarlo a NetScaler Ingress Controller. También muestra cómo volver a aplicar el ConfigMap después de realizar cambios. Opcionalmente, también puede eliminar los cambios.
Realice lo siguiente para configurar la compatibilidad con ConfigMap para NetScaler Ingress Controller.
  1. Cree un archivo YAML cic-configmap.yaml con los pares clave-valor necesarios en el ConfigMap.
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cic-configmap
      labels:
        app: citrix-ingress-controller
    data:
      LOGLEVEL: 'info'
      NS_PROTOCOL: 'http'
      NS_PORT: '80'
      NS_COOKIE_VERSION: '0'
      NS_HTTP2_SERVER_SIDE: 'ON'
  2. Implemente el cic-configmap.yaml mediante el siguiente comando.
    kubectl create -f cic-configmap.yaml
  3. Edite el archivo cic.yaml para implementar NetScaler Ingress Controller como un pod independiente y especifique lo siguiente:
    Args:
        - --configmap
            default/cic-configmap
    Nota:
    Es obligatorio especificar el espacio de nombres. Si no se especifica el espacio de nombres, no se considera el ConfigMap.
    A continuación se muestra un archivo YAML de ejemplo para implementar el NetScaler Ingress Controller con la configuración de ConfigMap. Para ver el archivo YAML completo, consulte citrix-k8s-ingress-controller.yaml.
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: cic-k8s-ingress-controller
    spec:
      selector:
        matchLabels:
          app: cic-k8s-ingress-controller
        replicas: 1
        template:
          metadata:
            name: cic-k8s-ingress-controller
            labels:
              app: cic-k8s-ingress-controller
          annotations:
          spec:
            serviceAccountName: cic-k8s-role
            containers:
            - name: cic-k8s-ingress-controller
              image: "quay.io/citrix/citrix-k8s-ingress-controller:1.36.5"
              env:
              # Set NetScaler NSIP/SNIP, SNIP in case of HA (mgmt has to be enabled)
              - name: "NS_IP"
                value: "x.x.x.x"
              - name: "EULA"
                value: "yes"
              args:
                - --ingress-classes
                  citrix
                - --feature-node-watch
                  false
                - --configmap
                  default/cic-configmap
              imagePullPolicy: Always
  4. Implemente el NetScaler Ingress Controller como un pod independiente aplicando el YAML.
    kubectl apply -f cic.yaml
  5. Si desea cambiar el valor de una variable de entorno, edite los valores en el ConfigMap. En este ejemplo, el valor de NS_HTTP2_SERVER_SIDE se cambia a 'OFF'.
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cic-configmap
      labels:
        app: citrix-ingress-controller
    data:
      LOGLEVEL: 'info'
      NS_PROTOCOL: 'http'
      NS_PORT: '80'
      NS_COOKIE_VERSION: '0'
      NS_HTTP2_SERVER_SIDE: 'OFF'
  6. Vuelva a aplicar el ConfigMap utilizando el siguiente comando.
    kubectl apply -f cic-configmap.yaml
  7. (Opcional) Si necesita eliminar el ConfigMap, utilice el siguiente comando.
    kubectl delete -f cic-configmap.yaml
    Cuando elimina el ConfigMap, la configuración de la variable de entorno vuelve al orden de precedencia siguiente: Configuración de ConfigMap > configuración de variable de entorno > predeterminado
(Opcional) En caso de que desee definir todas las claves de un ConfigMap como variables de entorno en el NetScaler Ingress Controller, utilice lo siguiente en el archivo YAML de implementación del NetScaler Ingress Controller.
envFrom:
        - configMapRef:
          name: cic-configmap