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.

Caso práctico: 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 este problema al aceptar el conjunto de miembros previsto para un grupo de servicios en una sola API, actualizando así la configuración de manera efectiva.

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 losautoScaleparámetrosautoDisablegracefulautoDisabledelay`` e y mediante el comando add ServiceGroup o set ServiceGroup.

add Service Group <serviceGroupName> @ <serviceType> [-AutoScale <autoScale>] [-AutoDisableGraceful (YES | NO)] [-AutoDisableDelay <secs>]

agregar Service Group <serviceGroupName> @ <serviceType> [-AutoScale (API |CLOUD | DISABLED| DNS |POLITICA)]

set nombreDeServicio <nombreDeGrupo de Servicio [-AutoDisableGraceful (YES | NO)] [-AutoDisableDelay <secs>]

set serviceGroup <nombreDeGrupo de servicio [-AutoScale (API |CLOUD | DISABLED| DNS |POLITICA)]

Ejemplo:

add serviceGroup svg1 HTTP AutoDisableGraceful SÍ -AutoDisableDelay 100

add serviceGroup svg1 HTTP -autoScale API

set ServiceGroup svg1 -AutoDisableGraceful  SÍ -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 de no escala automática al tipo de escala automática de la API de estado deseado, si coinciden todas las condiciones proporcionadas.

El comando set ServiceGroup AutoScale puede fallar si los enlaces de miembros existentes cumplen cualquiera 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: agregar nombre de servidor IPAddress
    • Ejemplo: agregar servidor 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 (Cloud, API, DNS y Directiva) en un comando set ServiceGroup y agrega el comando ServiceGroup.

Importante:

  • Los parámetros AutoDisableGraceful y AutoDisableDelay son aplicables solo para los grupos de servicios de tipo de escala automática “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 graceful unbind solo se muestran cuando se ejecuta el comando show servicegroup.
  • 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 servicegroup 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 de 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.