Ingress Controller de Citrix ADC

Habilitar la función de reintento de solicitudes mediante AppQoE para Citrix Ingress Controller

Cuando un dispositivo Citrix ADC recibe una solicitud HTTP y la reenvía a un servidor de fondo, a veces puede haber errores de conexión con el servidor de fondo. Puede configurar la función de reintento de solicitud en Citrix ADC para reenviar la solicitud al siguiente servidor disponible, en lugar de enviar el restablecimiento al cliente. Por lo tanto, el cliente ahorra tiempo de ida y vuelta cuando Citrix ADC inicia la misma solicitud al siguiente servicio disponible. Para obtener más información sobre la función de reintento de solicitudes, consulte la documentación de Citrix ADC.

Ahora, puede configurar el reintento de solicitudes en Citrix ADC con Citrix Ingress Controller. Las definiciones de recursos personalizadas (CRD) son la forma principal de configurar directivas en implementaciones nativas de la nube. Con la CRD de AppQoE proporcionada por Citrix, puede configurar directivas de solicitud y reintento en Citrix ADC con el Citrix Ingress Controller. La CRD de AppQoE permite la comunicación entre el Citrix Ingress Controller de Citrix y Citrix ADC para aplicar las directivas de AppQoE.

Definición de la CRD de AppQoE

La CRD de AppQoE está disponible en el repositorio de GitHub del Citrix Ingress Controller en: appqoe-crd.yaml. La CRD de AppQoE proporciona atributos para las diversas opciones que se requieren para definir la directiva de AppQoE en Citrix ADC.

Los siguientes son los atributos que se proporcionan en la CRD de AppQoE:

Atributo Descripción
servicenames Especifica la lista de servicios de Kubernetes a los que desea aplicar las directivas de AppQoE.
on-reset Especifica si se debe configurar el reintento en la conexión Restablecer o no.
on-timeout Especifica el tiempo en milisegundos para el reintento.
number-of-retries Especifica el número de reintentos.
appqoe-criteria Especifica la expresión para evaluar el tráfico.
direction Especifica el punto de enlace para vincular la directiva de AppQoE.

Implementar la CRD de AppQoE

Haga lo siguiente para implementar la CRD de AppQoE:

  1. Descargue la CRD de AppQoE.

  2. Implemente la CRD de AppQoE con el siguiente comando:

    kubectl create -f appqoe-crd.yaml
    

Cómo escribir una configuración de directiva de AppQoE

Después de implementar la CRD de AppQoE proporcionada por Citrix en el clúster de Kubernetes, puede definir la configuración de la directiva de AppQoE en un archivo .yaml. En el archivo .yaml, use appqoepolicy en el campo kind y, en la sección spec, agregue los atributos CRD de AppQoE en función de sus requisitos para la configuración de la directiva.

El siguiente archivo YAML aplica la directiva de AppQoE a los servicios que aparecen en el campo servicenames. Debe configurar la acción AppQoE para reintentar cuando se agote el tiempo de espera y definir el número de reintentos.

  apiVersion: citrix.com/v1
  kind: appqoepolicy
  metadata:
    name: targeturlappqoe
  spec:
    appqoe-policies:
      - servicenames:
          - apache
        appqoe-policy:
          operation-retry:
            onReset: 'YES'
            onTimeout: 33
          number-of-retries: 2
          appqoe-criteria: 'HTTP.REQ.HEADER("User-Agent").CONTAINS("Android")'
          direction: REQUEST

Una vez que haya definido la configuración de la directiva, implemente el archivo .yaml con los siguientes comandos:

$ kubectl create -f appqoe-example.yaml

Habilitar la función de reintento de solicitudes mediante AppQoE para Citrix Ingress Controller