Agente de escucha

Last published : Oct 02, 2026
El CRD de Agente de escucha representa la información del punto final del servidor virtual de equilibrio de carga de conmutación de contenido. Este tema contiene un objeto CRD de Agente de escucha de ejemplo y también explica los diversos atributos del CRD de Agente de escucha. Para ver la definición completa del CRD, consulte Listener.yaml.
Nota:
Un recurso de entrada y los CRD de enrutamiento de contenido (CRD de Agente de escucha y CRD de HTTPRoute) no pueden coexistir para el mismo punto final (dirección IP y puerto). No se admite el uso de CRD de enrutamiento de contenido con Ingress.

Ejemplo de objeto CRD de Agente de escucha

A continuación, se muestra un ejemplo de un objeto CRD de Agente de escucha.
apiVersion: citrix.com/v1
kind: Listener
metadata:
  name: my-listener
  namespace: default
spec:
  certificates:
  - secret:
      name: my-secret
    # Secret named 'my-secret' in current namespace bound as default certificate
    default: true
  - secret:
      # Secret 'other-secret' in demo namespace bound as SNI certificate
      name: other-secret
      namespace: demo
  - preconfigured: second-secret
    # preconfigured certkey name in ADC
  vip: '192.168.0.1' # Virtual IP address to be used, not required when CPX is used as ingress device
  port: 443
  protocol: https
  redirectPort: 80
  secondaryVips:
  - "10.0.0.1"
  - "1.1.1.1"
  policies:
    httpprofile:
      config:
        websocket: "ENABLED"
    tcpprofile:
      config:
        sack: "ENABLED"
    sslprofile:
      config:
        ssl3: "ENABLED"
    sslciphers:
    - SECURE
    - MEDIUM
    analyticsprofile:
      config:
      - type: webinsight
        parameters:
           allhttpheaders: "ENABLED"
    csvserverConfig:
      rhistate: 'ACTIVE'
  routes:
    # Attach the policies from the below Routes
  - name: domain1-route
    namespace: default
  - name: domain2-route
    namespace: default
  - labelSelector:
      # Attach all HTTPRoutes with label route=my-route
      route: my-route
  # Default action when traffic matches none of the policies in the HTTPRoute
  defaultAction:
    backend:
      kube:
        namespace: default
        port: 80
        service: default-service
        backendConfig:
          lbConfig:
            # Use round robin LB method for default service
            lbmethod: ROUNDROBIN
          servicegroupConfig:
            # Client timeout of 20 seconds
            clttimeout: "20"
Para más ejemplos, consulte Ejemplos de Agente de escucha.

Listener.spec

El atributo Listener.spec define la especificación del recurso personalizado del Agente de escucha. La siguiente tabla explica los distintos campos del atributo Listener.spec.
Campo Descripción Tipo                              ; Obligatorio
protocol Especifica el protocolo del servidor virtual de conmutación de contenido de equilibrio de carga. Los valores permitidos son: tcp, udp, http y https. cadena sí
port Especifica el número de puerto del servidor virtual de conmutación de contenido de equilibrio de carga. El número de puerto predeterminado para el protocolo HTTP es 80 y para el protocolo HTTPS es 443. entero No
routes Especifica la lista de recursos HTTPRoute que se adjuntarán al recurso Listener. El orden de evaluación es según el orden de la lista. Es decir, si hay varias entradas, la primera ruta especificada en la lista tiene la prioridad más alta y así sucesivamente. [ ] routes No
ingressclass Especifica la clase de entrada para que solo el controlador de entrada asociado con la clase de entrada especificada procese el recurso. De lo contrario, todos los controladores del clúster procesarán este recurso. cadena No
certificates Especifica la lista de certificados para el servidor virtual SSL si el protocolo es HTTPS. Este campo es obligatorio si el protocolo es HTTPS. [ ] certificates No
vip Especifica la dirección IP del punto final para el servidor virtual de conmutación de contenido de equilibrio de carga. Esta dirección es obligatoria para los dispositivos NetScaler VPX y MPX, pero no para los NetScaler CPX presentes en el clúster de Kubernetes. Para NetScaler CPX, vip es la misma que la dirección IP principal del NetScaler CPX asignada por el CNI. cadena No
defaultAction Especifica la acción predeterminada a realizar si ninguno de los recursos HTTPRoute especificados en routes coincide con el tráfico. acción No
policies Especifica la opción que le permite personalizar las políticas HTTP, TCP y SSL asociadas con el servidor virtual de front-end. [ ] Listener.policies No
redirectPort Especifica que el tráfico HTTP en este puerto se redirige al puerto HTTPS. Entero No
secondaryVips Especifica un conjunto de direcciones IP que se utilizan como VIP con la VIP principal. Se crea un IPset y estas VIP se añaden al IPset. [ ] cadena No
multicluster Especifica si la dirección IP del servidor virtual de conmutación de contenido es compartida por multiclústeres y NetScaler Ingress Controllers. booleano NO
passthrough Habilita el SSL Passthrough para el tráfico SSL. El tráfico se reenvía sin descifrar al backend. Solo disponible cuando el listener se referencia en la anotación de entrada; no se puede usar con rutas. booleano No

Listener.certificates

El atributo Listener.certificates define la información relacionada con el certificado TLS para el servidor virtual SSL.
A continuación se muestra un ejemplo del atributo Listener.certificates.
certificates:
- secret:
    name: my-secret
    namespace: demo
  default: true
- preconfigured: configured-secret
La siguiente tabla explica los distintos campos del atributo Listener.certificates.
Campo Descripción Tipo Obligatorio
secret Especifica los certificados TLS definidos a través del recurso secreto de Kubernetes. El secreto debe contener las claves tls.crt y tls.key. Estas claves contienen el certificado y la clave privada. Se requiere el secreto o el campo preconfigurado. Todos los certificados se vinculan al servidor virtual SSL como certificados SNI. certificates.secret No
preconfigured Especifica el nombre del certkey TLS preconfigurado en NetScaler, y este campo es aplicable solo para dispositivos VPX y MPX de Nivel 1. El certkey debe estar presente antes de la implementación real del recurso Listener; de lo contrario, la implementación del recurso fallará con un error. El NetScaler Ingress Controller no gestiona el ciclo de vida de certkey. Por lo tanto, debe gestionar manualmente cualquier adición o eliminación de certkey. Se requiere el secreto o el campo preconfigurado. cadena No
default Especifica el certificado predeterminado. Solo uno de los certificados puede marcarse como predeterminado. El certificado predeterminado se presenta si el servidor virtual recibe el tráfico sin un campo SNI. Este certificado se puede utilizar para acceder a la aplicación HTTPS mediante la dirección IP. Los valores aplicables son true y false booleano No

Listener.certificates.Secret

Este atributo representa el recurso secreto de Kubernetes para los certificados TLS que deben vincularse al servidor virtual SSL.
La siguiente tabla explica los distintos campos del atributo Listener.certificate.Secret.
Campo Descripción Tipo Obligatorio
name Especifica el nombre del recurso secreto de Kubernetes. El secreto debe contener claves denominadas tls.crt y tls.key. Estas claves contienen el certificado y la clave privada. Si hay más de un campo tls.crt presente en el objeto secreto, el primer certificado se considera un certificado de servidor y los certificados restantes se consideran certificados de CA intermedios. Además, los certificados se vinculan recursivamente entre sí a partir del certificado del servidor. cadena sí
namespace Especifica el espacio de nombres del recurso secreto de Kubernetes. Si no se especifica este valor, el espacio de nombres se considera el mismo que el del recurso Listener. cadena No

Listener.routes

Este atributo representa la lista de objetos HTTPRoute que están asociados al recurso Listener. La siguiente tabla explica los distintos campos del atributo Listener.routes.
Campo Descripción Tipo Obligatorio
name Especifica el nombre del recurso HTTPRoute evaluado para la decisión de enrutamiento al servidor de back-end. Se requiere name o labelSelector. cadena No
namespace Especifica el espacio de nombres del recurso HTTPRoute. El valor predeterminado es el espacio de nombres del recurso Listener. cadena No
labelSelector Especifica el selector de etiquetas del recurso HTTPRoute. Este campo proporciona otra forma de adjuntar recursos HTTPRoute. Los objetos HTTPRoute con claves y valores de etiqueta que coincidan con este selector se adjuntan automáticamente al recurso de escucha. Si las rutas se adjuntan a través del labelSelector, las rutas se adjuntan sin ningún orden específico. La excepción a esta regla es una ruta con una ruta predeterminada ('/') que siempre se adjunta al final. Como se muestra en el ejemplo, cualquier objeto HTTPRoute con etiquetas y se adjunta al objeto de escucha. Para obtener más información sobre etiquetas y selectores, consulte la Documentación de Kubernetes. objeto No

Listener.action

Este atributo representa la acción predeterminada si una solicitud al servidor virtual de equilibrio de carga no coincide con ninguno de los objetos de ruta presentados en el campo Listener.routes.
La siguiente tabla explica los distintos campos del atributo Listener.action.
Campo Descripción Tipo Obligatorio
backend La acción predeterminada para este campo es enviar el tráfico a un servicio de backend. Se requiere el backend o la redirección. action.backend No
redirect La acción predeterminada es redirigir el tráfico. Se requiere el backend o la redirección. action.redirect No

Listener.action.backend

Este atributo especifica el servicio de backend para la acción predeterminada. La siguiente tabla explica los distintos campos del atributo Listener.action.backend.
Campo Descripción Tipo Obligatorio
kube Especifica la información del servicio de Kubernetes para el servicio de back-end. action.backend.kube

Listener.action.backend.kube

Este atributo representa el servicio de back-end de Kubernetes para el back-end predeterminado. Si el servicio es de tipo NodePort o Loadbalancer, la dirección IP del nodo y el NodePort se utilizan para enviar el tráfico al back-end.
A continuación se muestra un ejemplo del atributo Listener.action.backend.kube.
kube:
  service: default-service
  namespace: default
  port: 80
  backendConfig:
    lbConfig:
      lbmethod: ROUNDROBIN
    servicegroupConfig:
      clttimeout: '20'
La siguiente tabla explica los distintos campos del atributo Listener.action.backend.kube.
Campo Descripción Tipo Obligatorio
service Especifica el nombre del servicio de Kubernetes para el back-end predeterminado. cadena sí
namespace Especifica el espacio de nombres del servicio de Kubernetes para el backend predeterminado. cadena sí
port Especifica el número de puerto del servicio de Kubernetes para el backend predeterminado. entero sí
backendConfig Especifica las configuraciones de backend para el backend predeterminado. BackendConfig no

BackendConfig

Este atributo representa las configuraciones de backend de NetScaler. A continuación se muestra un ejemplo para el atributo BackendConfig.
backendConfig:
 sercureBackend: true
 lbConfig:
   lbmethod: ROUNDROBIN
 servicegroupConfig:
   clttimeout: '20'
La siguiente tabla explica los distintos campos del atributo BackendConfig.
Campo Descripción Tipo Obligatorio
secureBackend Especifica si la comunicación es segura o no. Si el valor del campo secureBackend es true, se utiliza comunicación segura para comunicarse con el back-end. El valor predeterminado es false, lo que significa que se utiliza HTTP para la comunicación con el back-end.
lbConfig Especifica las configuraciones del servidor virtual de equilibrio de carga de NetScaler para el back-end dado. Se pueden especificar pares clave-valor como se muestra en el ejemplo, que establece las configuraciones del servidor virtual de equilibrio de carga para el back-end. Para todas las configuraciones válidas, consulte configuraciones del servidor virtual de equilibrio de carga. objeto No
servicegroupConfig Especifica las configuraciones del grupo de servicios de NetScaler para el back-end dado. Se pueden especificar pares clave-valor como se muestra en el ejemplo, que establece las configuraciones del grupo de servicios para el back-end. Para todas las configuraciones válidas, consulte configuraciones del grupo de servicios. objeto No

Listener.action.redirect

defaultAction:
  redirect:
   httpsRedirect: true
   responseCode: 302
La siguiente tabla explica los distintos campos del atributo Listener.action.redirect.
Campo Descripción Tipo Obligatorio
httpsRedirect Redirige el tráfico HTTP a HTTPS si este campo se establece en yes. Solo se cambia el esquema a HTTPS sin modificar la otra parte de la URL. Se requiere httpsRedirect, hostRedirect o targetExpression. booleano No
hostRedirect Reescribe la parte del nombre de host de la URL al valor establecido aquí y redirige el tráfico. La otra parte de la URL no se modifica durante la redirección. cadena No
targetExpression Especifica la expresión de NetScaler para la redirección. Por ejemplo, para redirigir el tráfico de HTTP a HTTPS, se puede usar la siguiente expresión: ""https://"+HTTP.REQ.HOSTNAME + HTTP.REQ.URL.HTTP_URL_SAFE". cadena No
responseCode Especifica el código de respuesta. El código de respuesta predeterminado es 302, que se puede personalizar utilizando este atributo. Entero No

Listener.policies

Este atributo representa las políticas predeterminadas que se utilizan para el Listener cuando no se especifican políticas. Al usar Listener.policies, puede personalizar el comportamiento de TCP, HTTP y SSL.
A continuación se muestra un ejemplo para el atributo Listener.policies.
policies:
 httpprofile:
  config:
   websocket: "ENABLED"
 tcpprofile:
  config:
   sack: "ENABLED"
 sslprofile:
  config:
   ssl3: "ENABLED"
 sslciphers:
  - HIGH
  - MEDIUM
  analyticsprofile:
   config:
   - type: webinsight
     parameters:
      allhttpheaders: "ENABLED"
  csvserverConfig:
   rhistate: 'ACTIVE'
   stateupdate: ‘ENABLED’
La siguiente tabla explica los distintos campos del atributo Listener.policies.
Campo Descripción Tipo Obligatorio
httpprofile Especifica la configuración HTTP para el servidor virtual de front-end. Listener.policies.httpprofile No
tcpprofile Especifica la configuración TCP para el servidor virtual de front-end. Listener.policies.tcpprofile No
sslprofile Especifica la configuración SSL para el servidor virtual de front-end. Listener.policies.sslprofile No
sslciphers Especifica la lista de cifrados que se vincularán al perfil SSL. El orden es el especificado en la lista, donde la prioridad más alta se asigna al primero de la lista y así sucesivamente. Puede utilizar cualquier cifrado SSL disponible en NetScaler o grupos de cifrado creados por el usuario en este campo. Para obtener información sobre la lista de cifrados disponibles en NetScaler, consulte Cifrados en NetScaler. [ ] cadena No
analyticsprofile Especifica la configuración del perfil de análisis para el servidor virtual de front-end Listener.policies.analyticsprofile No
csvserverConfig Especifica la configuración del servidor virtual CS de front-end para el Listener. Puede especificar el par clave-valor como se muestra en el ejemplo que establece la configuración del servidor virtual CS para el front-end. Objeto No

Listener.policies.tcpprofile

Este atributo representa la configuración del perfil TCP para el servidor virtual CS de front-end.
A continuación se muestra un ejemplo para el atributo Listener.policies.tcpprofile.
    policies:
     tcpprofile:
      config:
       sack: "ENABLED"
       nagle: “ENABLED”
---
    policies:
     tcpprofile:
      preconfigured: test-tcp-profile
La siguiente tabla explica los distintos campos del atributo Listener.policies.tcpprofile.
Campo Descripción Tipo Obligatorio
preconfigured Especifica el nombre del perfil TCP preconfigurado que se utilizará para el servidor virtual CS de front-end. Este perfil debe estar presente en NetScaler antes de aplicar la política. De lo contrario, el recurso Listener no se aplicará. Se requiere preconfigured o config. cadena No
config Especifica la configuración del perfil TCP para el servidor virtual de front-end. Puede especificar el par clave-valor como se muestra en el ejemplo para ajustar las características TCP del servidor virtual. Objeto No

Listener.policies.httpprofile

Este atributo representa la configuración HTTP para el servidor virtual CS de front-end.
A continuación, se muestra un ejemplo del atributo Listener.policies.httpprofile.
    policies:
     httpprofile:
      config:
       websocket: "ENABLED"
---
    policies:
     httpprofile:
     preconfigured: test-http-profile
La siguiente tabla explica los distintos campos del atributo Listener.policies.httpprofile.
Campo Descripción Tipo Obligatorio
preconfigured Especifica el nombre del perfil HTTP preconfigurado que se utilizará para el servidor virtual CS de front-end. Este perfil debe estar presente en NetScaler antes de aplicar la política. De lo contrario, el recurso Listener no se aplicará. Se requiere preconfigured o config. cadena No
config Especifica la configuración del perfil HTTP para el servidor virtual de front-end. Puede especificar el par clave-valor como se muestra en el ejemplo para ajustar las características del protocolo HTTP del servidor virtual. Objeto No

Listener.policies.sslprofile

Este atributo representa el perfil SSL para el servidor virtual CS de front-end.
A continuación se muestra un ejemplo del atributo Listener.policies.sslprofile.
    policies:
     sslprofile:
      config:
       ssl3: "ENABLED"
---
    policies:
     sslprofile:
      preconfigured: test-ssl-profile
La siguiente tabla explica los distintos campos del atributo Listener.policies.sslprofile.
Campo Descripción Tipo Obligatorio
preconfigured Especifica el nombre del perfil SSL preconfigurado que se utilizará para el servidor virtual SSL de front-end. Este perfil debe estar presente en NetScaler antes de aplicar la política. De lo contrario, el recurso Listener no se aplicará. Se requiere preconfigured o config. cadena No
config Especifica la configuración del perfil SSL para el servidor virtual de front-end. Puede especificar el par clave-valor como se muestra en el ejemplo para ajustar las características SSL del servidor virtual. Objeto No
Nota: Debe habilitar los perfiles predeterminados utilizando el comando set ssl parameter -defaultProfile ENABLED en NetScaler para usar las funciones SSL avanzadas.

Listener.policies.analyticsprofile

Este atributo representa el perfil de análisis que se utiliza para exportar contadores y métricas a NetScaler Observability Exporter. Al configurar este atributo, puede elegir qué se exportará creando y vinculando el perfil de análisis.
A continuación, se muestra un ejemplo del atributo Listener.policies.analyticsprofile.
    policies:
     analyticsprofile:
      config:
      - type: webinsight
        parameters:
         allhttpheaders: "ENABLED"
---
    policies:
     analyticsprofile:
      preconfigured:
      - test-analytics-profile
      - test2-analytics-profile
La siguiente tabla explica los distintos campos del atributo Listener.policies.analyticsprofile.
Campo Descripción Tipo Obligatorio
preconfigured Especifica la lista de perfiles de análisis preconfigurados que deben vincularse al servidor virtual de front-end. Estos perfiles deben estar presentes en NetScaler antes de aplicar la política. De lo contrario, el recurso Listener no se aplicará. Se requiere preconfigured o config. [ ] cadena No
config Especifica la lista de perfiles de análisis que se vincularán al servidor virtual de front-end. Esto determina los campos que se exportarán a NetScaler Observability Exporter. [ ] Listener.policies.analyticsprofile.config No

Listener.policies.analyticsprofile.config

Este atributo representa la configuración del perfil de análisis para los diferentes tipos de información y parámetros de encabezado HTTP que deben exportarse.
La siguiente tabla explica los distintos campos del atributo Listener.policies.analyticsprofile.config.
Campo Descripción Tipo Obligatorio
type Especifica el tipo que determina el tipo de perfil de análisis que se va a habilitar. Puede habilitar uno o varios de los siguientes tipos: webinsight, tcpinsight, securityinsight, videoinsight, hdxinsight, gatewayinsight, timeseries, lsninsight y botinsight cadena Sí
parameters Especifica los parámetros adicionales que se habilitarán como parte del perfil de análisis. Puede especificar el par clave-valor como se muestra en el ejemplo. Por ejemplo, utilizando este campo, puede seleccionar los parámetros HTTP que se exportarán como parte de webinsight Objeto No