Habilita el desvío de conexión

El desvío de conexión es un proceso que garantiza que las solicitudes existentes en curso tengan tiempo para completarse cuando se quita una VM de un grupo de instancias.

Para habilitar el desvío de conexión, debes establecer un tiempo de espera de desvío de conexión en el servicio de backend. La duración del tiempo de espera debe ser de 1 a 3,600 segundos.

Durante la duración especificada del tiempo de espera, las solicitudes existentes a la VM que se quitó tienen tiempo para completarse. El balanceador de cargas no envía solicitudes nuevas a la VM que se quitó. Una vez que transcurre el tiempo de espera, se cierran todas las conexiones a la VM restantes.

El desvío de conexión se activa cada vez que se quita o borra una instancia de un grupo de instancias; en particular, en los casos siguientes:

Pueden pasar hasta 60 segundos después de que transcurrió el tiempo de espera especificado para que se resuelva la instancia.

Si habilitas el desvío de conexión en varios servicios de backend que comparten los mismos grupos de instancias, se usará el valor de tiempo de espera mayor. Por ejemplo, si el servicio de backend A establece un tiempo de espera de conexión de 100 segundos, y el servicio de backend B establece uno de 200 segundos, el sistema esperará 200 segundos antes de finalizar las instancias en el grupo de instancias compartidas.

Restricciones

Habilita el desvío de conexión

Console

  1. Ve a la página Balanceo de cargas de Google Cloud Platform Console.
    Ir a la página Balanceo de cargas
  2. Haz clic en el botón Editar del balanceador de cargas o crea uno nuevo.
  3. Haz clic en Configuración de backend.
  4. Haz clic en Ajustes avanzados en la parte inferior de tu servicio de backend.
  5. En el campo Tiempo de espera de desvío de conexión, ingresa un valor entre 03600. Si ingresas 0, se inhabilita el desvío de conexión.

gcloud

Habilita el desvío de conexión en un servicio de backend nuevo o existente mediante la marca --connection-draining-timeout. Por ejemplo, cuando actualizas un servicio de backend, proporciona la marca con la solicitud como se muestra a continuación:

gcloud compute backend-services update [BACKEND_SERVICE] \
    --connection-draining-timeout [CONNECTION_TIMEOUT_SECS]

donde:

  • [BACKEND_SERVICE] es el servicio de backend para esta solicitud.
  • [CONNECTION_TIMEOUT_SECS] es la cantidad de segundos que hay que esperar antes de que finalicen las instancias, entre 0 y 3600 segundos, inclusive. Si ingresas 0, se inhabilita el desvío de conexión. Esta duración de tiempo de espera se aplica a todos los grupos de instancias que forman parte del servicio de backend.

Si actualizas tu instancia con el subcomando backend-services edit, agrega connectionDraining como parte del cuerpo del recurso:

# You can edit the resource below. Lines beginning with "#" are
# ignored.
#
# If you introduce a syntactic error, you will be given the
# opportunity to edit the file again. You can abort by closing this
# file without saving it.
#
# At the bottom of this file, you will find an example resource.
#
# Only fields that can be modified are shown. The original resource
# with all of its fields is reproduced in the comment section at the
# bottom of this document.

description: ''
healthChecks:
- https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/healthChecks/[HEALTH_CHECK]
port: 80
portName: [PORT_NAME]
protocol: [PROTOCOL]
timeoutSec: 30
connectionDraining:
  drainingTimeoutSec: [CONNECTION_TIMEOUT_SEC]

API

Para habilitar el desvío de conexión en la API cuando creas o actualizas una instancia, realiza una solicitud al URI de la API respectivo y, además, incluye el campo connectionDraining en el cuerpo de tu solicitud. Por ejemplo, para crear un servicio de backend nuevo, debes crear una solicitud POST al URI siguiente:

Usa este comando para el balanceo de cargas de proxy HTTP(S) o SSL:

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/backendServices

Para el balanceo de cargas interno, usa este comando:

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/region/[REGION]/backendServices

{  "healthChecks": [
     "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/healthChecks/[HEALTH_CHECK_NAME]"
    ],
   "name": "[BACKEND_SERVICE]",
   "port": 80,
   "portName": "[PORT_NAME]",
   "protocol": "[PROTOCOL]",
   "timeoutSec": 30,
   "connectionDraining": {
     "drainingTimeoutSec": [CONNECTION_TIMEOUT_SECS]
   }
}

donde:

  • [PROJECT_ID] es el ID del proyecto de esta solicitud.
  • [BACKEND_SERVICE] es el servicio de backend para esta solicitud.
  • [CONNECTION_TIMEOUT_SECS] es la cantidad de segundos que debes esperar antes de que las instancias se quiten del grupo de instancias, entre 1 y 3,600 segundos, inclusive. Esta duración de tiempo de espera se aplica a todos los grupos de instancias que forman parte del servicio de backend.

Próximos pasos

Para obtener información general sobre los servicios de backend, consulta esta página sobre los servicios de backend.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...