Citrix ADC

Configurar un conjunto deseado de miembros del grupo de servicios para un grupo de servicios en una llamada a la API NITRO

Se agrega soporte para configurar un conjunto deseado de miembros del grupo de servicios para un grupo de servicios en una llamada a la API NITRO. Se agrega una nueva API, la API de estado deseado, para admitir esta configuración. Mediante la API de estado deseado, puede:

  • Proporcione una lista de miembros del grupo de servicios en una única solicitud PUT en el recurso “servicegroup_servicegroupmemberlist_binding”.
  • Proporcione su peso y estado (opcional) en esa solicitud PUT.
  • Sincronice eficazmente la configuración del dispositivo con los cambios de implementación alrededor de los servidores de aplicaciones.

El dispositivo Citrix ADC compara el conjunto de miembros deseado solicitado con el conjunto de miembros configurado. A continuación, se vincula automáticamente a los nuevos miembros y se desvincula a los miembros que no están presentes en la solicitud.

Nota:

  • Esta función solo se admite para grupos de servicio de tipo API.
  • Solo puede enlazar servicios basados en direcciones IP mediante la API de estado deseado, los servicios basados en nombres de dominio no están permitidos.
  • Anteriormente, solo un miembro del grupo de servicios puede estar vinculado en una llamada NITRO.

Importante

La API de estado deseada para la pertenencia a ServiceGroup se admite en la implementación de clústeres de Citrix ADC.

Caso de uso: Sincronice los cambios de implementación en el dispositivo Citrix ADC en implementaciones a gran escala, como Kubernetes

En implementaciones a gran escala y altamente dinámicas (por ejemplo, Kubernetes), el reto consiste en mantener la configuración del dispositivo actualizada con la tasa de cambio de implementaciones para atender con precisión el tráfico de aplicaciones. En tales implementaciones, los controladores (Ingress o E-W Controller) son responsables de actualizar la configuración de ADC. Cada vez que hay cambios en la implementación, el servidor kube-api envía el conjunto efectivo de puntos finales a través del evento ‘Endpoints ‘al Controller. El Controller utiliza el enfoque Read-Delta-Modify donde realiza lo siguiente:

  • Obtiene el conjunto de extremos configurado actualmente (conjunto de miembros del grupo de servicios de un grupo de servicios) para el servicio desde el dispositivo ADC.
  • Compara el conjunto de extremos configurado con el conjunto del evento recibido.
  • Enlaza los nuevos extremos (miembros del grupo de servicios) o desvincula los extremos eliminados.

Dado que la tasa de cambio y el tamaño de los servicios son altos en este entorno, este método de configuración no es eficiente y puede retrasar las actualizaciones de configuración.

La API de estado deseado resuelve el problema al aceptar el conjunto de miembros previsto para un grupo de servicios en una única API, por lo que actualiza eficazmente la configuración.

Crear un grupo de servicios de tipo API mediante la CLI

En el símbolo del sistema, escriba;

add serviceGroup <serviceGroupName>@ <serviceType> [-autoScale <autoScale>]

Ejemplo:

add serviceGroup svg1 HTTP -autoScale API

Puede configurar los parámetros autoDisablegraceful, autoDisabledelay y autoScale mediante el comando add ServiceGroup o set ServiceGroup.

add serviceGroup <serviceGroupName>@ <serviceType> [-autoScale <autoScale>] [-autoDisablegraceful ( YES | NO)] [-autoDisabledelay <secs>]

add serviceGroup <serviceGroupName>@ <serviceType> [-autoScale (API |CLOUD | DISABLED| DNS |POLICY)]

set serviceGroup <serviceGroupName [-autoDisablegraceful ( YES | NO)] [-autoDisabledelay <secs>]

set serviceGroup <serviceGroupName [-autoScale (API |CLOUD | DISABLED| DNS |POLICY)]

Ejemplo:

add serviceGroup svg1 HTTP autoDisablegraceful YES -autoDisabledelay 100

add serviceGroup svg1 HTTP -autoScale API

set serviceGroup svg1 -autoDisablegraceful  YES -autoDisabledelay 100

set serviceGroup svg1 -autoScale API

Argumentos

autoDisablegraceful

Indica el apagado estable del servicio. Si esta opción está habilitada, el dispositivo espera que todas las conexiones pendientes a este servicio se cierren antes de eliminar el servicio. Para los clientes que ya tienen una sesión persistente en el sistema, se siguen enviando nuevas conexiones o solicitudes a este servicio. El miembro del servicio solo se elimina si no hay conexiones pendientes. Valor predeterminado: NO

Retraso de desactivación automática

Indica el tiempo permitido (en segundos) para un apagado estable. Durante este período, se siguen enviando nuevas conexiones o solicitudes a este servicio para clientes que ya tienen una sesión persistente en el sistema. Las conexiones o solicitudes de clientes nuevos que no tienen sesiones de persistencia en el sistema no se envían al servicio. En su lugar, se equilibran la carga entre otros servicios disponibles. Después de que expire el tiempo de retraso, se elimina el miembro del servicio.

API de Autoscale

Habilita el uso de la API de estado deseado para vincular el conjunto de miembros a un grupo de servicios previsto. Puede establecer el grupo de servicios desde la escala no automática a la escala automática tipo de API de estado deseado, si todas las condiciones proporcionadas coinciden.

El comando set ServiceGroup Autoscale puede fallar si los enlaces de miembros existentes cumplen alguna de estas condiciones:

  • Si el servidor enlazado al grupo de servicios es un servidor de nombres o un servidor basado en dominio.
  • Si el nombre del servidor enlazado al grupo de servicios es una dirección IP, debe coincidir con la dirección IP del servidor real. En el ejemplo siguiente, el nombre del servidor y la dirección IP del servidor no coinciden.
    • CLI: add server IPaddress server name
    • Ejemplo: add server 1.2.3.4 4.3.2.1
  • Si el nombre del servidor de bucle invertido es distinto de 127.0.0.1 o 0000:0000:0000:0000:0000:0000:0000:0000:0000:0000:0001.
  • Si elige diferentes tipos de escala automática (nube, API, DNS y directiva) en un comando set ServiceGroup y agrega el comando ServiceGroup.

Importante:

  • Los parámetros AutoDisableGraceful y AutoDisableDelay solo son aplicables a los grupos de servicios de Autoscale tipo “API” y “CLOUD”.
  • Si los parámetros AutoDisableGraceful o AutoDisableDelay no están configurados, los miembros del servicio se eliminan inmediatamente.

Desenlazar un miembro del grupo de servicios correctamente

Si alguno de los miembros del grupo de servicios no está en la lista de estados deseada, esos miembros se desvinculan correctamente según la configuración del parámetro autoDisablegraceful o autoDisabledelay.

  • Si se establece uno de estos parámetros, el miembro del grupo de servicios se desenlazará correctamente.
  • Si no se establece ninguno de estos parámetros, el miembro del grupo de servicios se desvinculará inmediatamente.

Nota:

  • Los miembros del grupo de servicios identificados para unbind graceful solo se muestran cuando se ejecuta el comando show service group.
  • No puede realizar ninguna operación (como set, unset) en el miembro del grupo de servicios identificado para la desvinculación graciosa.

En la siguiente figura se muestra un comando show service group de ejemplo.

Ejemplo de comando show service group

Crear un grupo de servicios de tipo API mediante la interfaz gráfica de usuario

  1. Vaya a Administración del tráfico > Equilibrio de carga > Grupos de servicio y haga clic en Agregar.

  2. En el modo AutoScale, seleccione API.

Configure el apagado estable o un retraso de tiempo para un grupo de servicios de tipo API mediante la interfaz gráfica de usuario

  1. Vaya a Administración del tráfico > Equilibrio de carga > Grupos de servicio.

    Configuración básica de grupos de servicios

  2. En el modo AutoScale, seleccione API.

  3. En Inhabilitar automáticamente Graceful, seleccione .

  4. En Retardo de desactivación automática, introduzca el tiempo de espera para un apagado estable.

Nota: Los campos Auto Disable Graceful o Auto Display Delay solo están activados si selecciona API o CLOUD en el modo AutoScale.