Usar grupos de destino

Un grupo de destino es un grupo de instancias de backend que recibe tráfico entrante de balanceadores de carga de red de paso a través externos. Todas las instancias de backend de un grupo de destino deben estar en la misma región.Google Cloud Los balanceadores de carga de red de paso a través externos pueden usar un servicio de backend o un grupo de destino para definir el grupo de instancias de backend. Si vas a crear balanceadores de carga de red externos de tipo pasarela, te recomendamos que uses servicios de backend.

En esta página se describen las opciones de configuración de los back-ends de los grupos de destino. Cuando la regla de reenvío de un balanceador de carga de red de pases externo dirige el tráfico a un grupo de destino, el balanceador de carga elige una instancia del grupo de destino en función de un hash de la dirección IP de origen, el puerto de origen, la dirección IP de destino y el puerto de destino.

Si quieres que tu grupo de destino contenga una sola máquina virtual (VM), te recomendamos que uses la función reenvío de protocolos en lugar del balanceo de carga.

Propiedades del grupo de destino

Los grupos de destino funcionan con reglas de reenvío que gestionan el tráfico TCP y UDP. Debes crear un grupo de destino para poder usarlo con una regla de reenvío.

Los grupos de destino usan comprobaciones de estado HTTP antiguas.

Un grupo de destino se compone de las siguientes propiedades:

name
El nombre de este grupo de destino. El nombre debe ser único en este proyecto, tener entre 1 y 63 caracteres y coincidir con la expresión regular [a-z]([-a-z0-9]*[a-z0-9])?, lo que significa que el primer carácter debe ser una letra minúscula y todos los demás deben ser un guion (a excepción del último), una letra minúscula o un dígito.
description
Opcional. Descripción definida por el usuario de este grupo de destino.
region

URL completa de la región del grupo de destino. La región debe ser la misma en la que residan tus instancias de backend. Por ejemplo:

"region" : "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION"

healthChecks[ ]

Opcional. Lista opcional de comprobaciones de estado de este grupo de destino. Solo se puede asociar una comprobación de estado a un grupo de destino concreto. Consulta Comprobación de estado para obtener más información.

instances[ ]

Lista de URLs de instancias que deben gestionar el tráfico de este grupo de destino. Todas las instancias deben residir en la misma región que el grupo de destino, pero pueden pertenecer a zonas diferentes dentro de una misma región. Por ejemplo:

"instances" : [
  "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE",
  "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE-2"
]
sessionAffinity

Opcional. Controla el método usado para seleccionar una instancia de máquina virtual de backend. Solo puede definir este valor durante la creación del grupo de destino. Una vez que lo hayas definido, no podrás modificarlo. El método de hash selecciona un backend en función de un subconjunto de los siguientes cinco valores:

  • IP de origen o destino
  • Puerto de origen o destino
  • Protocolo de capa 4 (TCP y UDP)

Los posibles hashes son los siguientes:

NONE (es decir, no se ha especificado ningún hash) (valor predeterminado)
Hashing de quíntupla, que usa las IPs de origen y destino, los puertos de origen y destino, y el protocolo. Cada nueva conexión puede acabar en cualquier instancia, pero todo el tráfico de una conexión determinada permanecerá en la misma instancia si esta se mantiene en buen estado.
CLIENT_IP_PROTO
Hashing de triplas, que usa las IPs de origen y de destino, así como el protocolo. Todas las conexiones de un cliente se dirigirán a la misma instancia siempre que utilicen el mismo protocolo y la instancia se mantenga en buen estado.
CLIENT_IP
Hash de 2 tuplas, que usa las IPs de origen y de destino. Todas las conexiones de un cliente terminarán en la misma instancia, independientemente del protocolo, siempre que la instancia se mantenga en buen estado.

El hashing de 5 tuplas proporciona una buena distribución del tráfico entre muchas máquinas virtuales. Sin embargo, es posible que llegue una segunda sesión del mismo cliente a otra instancia porque el puerto de origen puede cambiar. Si quieres que todas las sesiones del mismo cliente lleguen al mismo backend mientras este esté en buen estado, puedes especificar las opciones CLIENT_IP_PROTO o CLIENT_IP.

Por lo general, si seleccionas un método de 3 o 2 tuplas, se proporcionará una mejor afinidad de sesión que con el método predeterminado de 5 tuplas, pero es posible que el tráfico general no se distribuya de forma tan uniforme.

Paquetes UDP fragmentados: si vas a balancear la carga del tráfico UDP que probablemente esté fragmentado, define la afinidad de sesión como CLIENT_IP_PROTO o CLIENT_IP. No uses NONE (hash de 5 tuplas). Esto se debe a que los fragmentos UDP que no son el primero no incluyen el número de puerto y el balanceador de carga puede descartar los fragmentos sin el puerto. Consulta más información sobre el balanceo de carga y los paquetes UDP fragmentados.

backupPool

Opcional. Una URL completa de otro recurso de grupo de destino. Un grupo de copia de seguridad es un grupo de destino al que hace referencia otro grupo de destino. También debes definir failoverRatio para usar esta función. Si la proporción de máquinas virtuales en buen estado de tu grupo de destino es inferior a failoverRatio, el balanceador de carga de red de paso a través externo envía tráfico a tu grupo de copia de seguridad. Solo puedes proporcionar un grupo de copia de seguridad por grupo de destino. El grupo de copias de seguridad debe estar en la misma región que el grupo de destino. Si la proporción de instancias correctas de tu grupo de destino es inferior a la proporción de conmutación por error configurada, el balanceador de carga de red de pases externo usará las siguientes reglas para enrutar el tráfico:

  1. Si la proporción de instancias en buen estado con respecto al total de instancias del grupo de destino es inferior al índice de conmutación por error, el tráfico se envía a las instancias en buen estado del grupo de copia de seguridad.
  2. Si la proporción de instancias en buen estado con respecto al total de instancias del grupo de destino es inferior al índice de conmutación por error, pero no quedan instancias en buen estado en el grupo de copia de seguridad, el tráfico se envía a las instancias en buen estado que queden en el grupo de destino.
  3. Si el grupo de destino no está vacío y todas las instancias del grupo de destino y del grupo de copia de seguridad no superan las comprobaciones del estado, el tráfico se envía a todas las instancias del grupo de destino como último recurso.
  4. Si el grupo de destino está vacío y todas las instancias del grupo de copia de seguridad fallan en sus comprobaciones del estado, el tráfico se envía a todas las instancias del grupo de copia de seguridad como último recurso.

Solo se admite un nivel de conmutación por error. Por ejemplo, si el grupo de destino A tiene el grupo de copia de seguridad B y este tiene el grupo de copia de seguridad C, el tráfico destinado al grupo de destino A solo se puede dirigir al grupo de copia de seguridad B y no al C.

failoverRatio

Opcional. Un valor flotante entre 0.0 y 1.0 que determina cuándo se declara que este grupo de destino no está en buen estado. Por ejemplo, si este valor se define como 0.1, este grupo de destino se declara como no operativo si el número de instancias operativas es inferior a 0.1 (10%). Si el índice de conmutación por error es 0.0, al menos un backend debe estar en buen estado para que el grupo se considere en buen estado. Si la relación de conmutación por error se define como 1.0, todas las instancias deben estar en buen estado para que el grupo se considere en buen estado. Debes definir este campo si defines el campo backupPool.

Condiciones de conmutación por error

Condiciones Las nuevas conexiones van a
El índice de conmutación por error no es 0 y el número de VMs en buen estado del grupo de destino es mayor o igual que el índice de conmutación por error. grupo de destino
Índice de conmutación por error =0 y VMs en buen estado en el grupo de destino > 0 grupo de destino
El índice de conmutación por error no es 0, el número de VMs en buen estado del grupo de destino es inferior al índice de conmutación por error y hay al menos una VM en buen estado en el grupo de copia de seguridad. grupo de copia de seguridad
Índice de conmutación por error =0, VMs en buen estado en el grupo de destino = 0 y al menos una VM en buen estado en el grupo de copia de seguridad grupo de copia de seguridad
Al menos una VM está en el grupo de destino y todas las VMs del grupo de destino no están en buen estado, así como todas las VMs del grupo de copia de seguridad. grupo de destino (último recurso)
No hay ninguna VM en el grupo de destino y todas las VMs del grupo de copia de seguridad no están en buen estado. Grupo de copia de seguridad (último recurso)
No hay ninguna VM en el grupo de destino ni en el grupo de copia de seguridad Se ha eliminado el tráfico

Crear un grupo de destino

Consola

No se pueden crear grupos de destino en la consola de Google Cloud . Puedes crear un grupo de destino mediante la CLI de Google Cloud o la API.

Para saber cómo crear un balanceador de carga de red de paso a través externo basado en un grupo de destino con la CLI de Google Cloud, consulta Configurar un balanceador de carga de red de paso a través externo con un grupo de destino.

gcloud

Para usar gcloud compute y crear un grupo de destino, usa el comando target-pools create:

  gcloud compute target-pools create TARGET_POOL \
      [--backup-pool=BACKUP_POOL] \
      [--description=DESCRIPTION] \
      [--failover-ratio=FAILOVER_RATIO] \
      [--http-health-check=HEALTH_CHECK] \
      [--region=REGION]
      [--session-affinity=SESSION_AFFINITY; default="NONE"]

Haz los cambios siguientes:

  • TARGET_POOL: el nombre del grupo de destino
  • BACKUP_POOL: un nombre para el grupo de destino de copia de seguridad
  • DESCRIPTION: una descripción del grupo de destino
  • FAILOVER_RATIO: un valor entre 0,0 y 1,0 que determina cuándo se declara que el grupo de destino no está en buen estado.
  • HEALTH_CHECK: una comprobación de estado de este grupo de destino
  • REGION: una región del grupo de destino
  • SESSION_AFFINITY: el método usado para seleccionar una instancia de máquina virtual de backend.

API

Para crear un grupo de destino en la API, envía una solicitud HTTP POST al siguiente URI:

  https://www.googleapis.com/v1/compute/projects/PROJECT_ID/regions/REGION/targetPools
  {
    "name": name,
    "instances": [
       "https://www.googleapis.com/v1/compute/project/PROJECT_ID/zones/ZONE/instances/INSTANCE",
       "https://www.googleapis.com/v1/compute/project/PROJECT_ID/zones/ZONE/instances/INSTANCE-2",
    ]
  }
 

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto Google Cloud
  • ZONE: la zona en la que se encuentran las instancias del grupo de destino.
  • INSTANCE, INSTANCE-2: las instancias que se van a añadir al grupo de destino

Añadir o quitar una instancia de un grupo de destino

Consola

Los grupos de destino no se pueden editar en la consola de Google Cloud . Puedes editar un grupo de destino mediante la CLI de Google Cloud o la API.

gcloud

Para usar gcloud compute y añadir instancias a un grupo de destino, usa el comando target-pools add-instances:

  gcloud compute target-pools add-instances TARGET_POOL \
      --instances=INSTANCE,[INSTANCE-2,...]

Haz los cambios siguientes:

  • TARGET_POOL: el nombre del grupo de destino
  • INSTANCE, INSTANCE-2: el nombre de la instancia (o instancias) que se va a añadir al grupo de destino.

Para quitar instancias, usa el comando target-pools remove-instances:

  gcloud compute target-pools remove-instances TARGET_POOL \
      --instances=INSTANCE,[INSTANCE-2,...]

Haz los cambios siguientes:

  • TARGET_POOL: el nombre del grupo de destino
  • INSTANCE, INSTANCE-2: el nombre de la instancia (o instancias) que se va a quitar del grupo de destino

API

En la API, envía una solicitud POST a los siguientes URIs:

  https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/removeInstance
  https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/addInstance

El cuerpo de la solicitud debe incluir los URIs completos de las instancias que quieras añadir o quitar:

  {
   "instances": [
      {"instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE"},
      {"instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE-2"}
    ]
  }
 

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto Google Cloud
  • TARGET_POOL: el nombre del grupo de destino que se va a actualizar
  • REGION: la región en la que se encuentra el grupo de destino
  • ZONE: la zona en la que se encuentran las instancias actualizadas
  • INSTANCE, INSTANCE-2: las instancias que se van a añadir al grupo de destino

Para obtener más información, consulta la documentación de referencia de la API de los métodos targetPools.addInstance y targetPools.removeInstance.

Mostrar lista de grupos de destino

Consola

Para ver una lista de grupos de destino, usa el menú avanzado de balanceo de carga.

En la página de balanceo de carga Avanzado, vaya a la pestaña Grupos de destino.
Ve a Grupos de destino.

En la página se muestra una lista de grupos de destino.

gcloud

Para usar gcloud compute y ver una lista de los grupos de destino que ya tienes, usa el comando target-pools list:

  gcloud compute target-pools list

Para obtener un resultado más detallado, usa el comando describe y especifica el nombre de un grupo.

API

En la API, envía una solicitud GET al siguiente URI:

  https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto Google Cloud
  • REGION: la región en la que se encuentra el grupo de destino

Describe un grupo de destino

Consola

Para obtener información sobre un grupo de destino, usa el menú avanzado de balanceo de carga.

  1. En la página de balanceo de carga Avanzado, vaya a la pestaña Grupos de destino.
    Ve a Grupos de destino.
  2. Para ver información detallada, haz clic en el nombre del grupo de destino.

gcloud

Para usar gcloud compute y obtener información sobre un único grupo de destino, usa el comando target-pools describe:

  gcloud compute target-pools describe TARGET_POOL

Haz los cambios siguientes:

  • TARGET_POOL: el nombre del grupo de destino

API

En la API, envía una solicitud GET vacía al siguiente URI:

  https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto Google Cloud
  • TARGET_POOL: el nombre del grupo de destino que se va a actualizar
  • REGION: la región en la que se encuentra el grupo de destino

Obtener el estado de las instancias

Consola

Para obtener el estado de salud de las instancias de un grupo de destino, usa el menú avanzado de balanceo de carga.

  1. En la página de balanceo de carga Avanzado, vaya a la pestaña Grupos de destino.
    Ve a Grupos de destino.
  2. Haga clic en el nombre del grupo de destino.
  3. En la página Detalles del grupo de destino se muestran todas las instancias y su estado de salud.

gcloud

Para usar gcloud compute y comprobar el estado de salud actual de una instancia de tu grupo de destino o de todas las instancias del grupo de destino, puedes usar el comando gcloud compute target-pools get-health:

  gcloud compute target-pools get-health TARGET_POOL

Haz los cambios siguientes:

  • TARGET_POOL: el nombre del grupo de destino

El comando devuelve el estado de salud determinado por la comprobación del estado configurada, que puede ser correcto o incorrecto.

API

En la API, haz una solicitud POST de HTTP al siguiente URI con la instancia especificada en el cuerpo de la solicitud:

  https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/getHealth

  {
    "instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE"
  }

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto Google Cloud
  • TARGET_POOL: el nombre del grupo de destino que se va a actualizar
  • REGION: la región en la que se encuentra el grupo de destino
  • ZONE: la zona en la que se encuentran las instancias
  • INSTANCE: la instancia cuyo estado de comprobación de estado quieres consultar

Eliminar un grupo de destino

Para eliminar un grupo de destino, primero debes asegurarte de que no haga referencia a él ninguna regla de reenvío. Si una regla de reenvío hace referencia a un grupo de destino, debes eliminar la regla de reenvío para quitar la referencia.

Consola

Para usar la consola y eliminar un grupo de destino, usa el menú avanzado de balanceo de carga. Google Cloud

  1. En la página de balanceo de carga Avanzado, vaya a la pestaña Grupos de destino.
    Ve a Grupos de destino.
  2. Haga clic en el nombre del grupo de destino.
  3. Haz clic en Eliminar.
  4. En la ventana Eliminar un grupo de destino, haz clic en Eliminar.

gcloud

Para usar gcloud compute y eliminar un grupo de destino, usa el comando target-pools delete:

  gcloud compute target-pools delete TARGET_POOL

Haz los cambios siguientes:

  • TARGET_POOL: el nombre del grupo de destino que se va a eliminar

API

En la API, envía una solicitud DELETE vacía al siguiente URI:

  https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto Google Cloud
  • TARGET_POOL: el nombre del grupo de destino que se va a actualizar
  • REGION: la región en la que se encuentra el grupo de destino

Añadir o eliminar una comprobación de estado de un grupo de destino

Los objetos de comprobación de estado son recursos independientesy globales que se pueden asociar o desasociar de cualquier grupo de destino.

Si un grupo de destino no tiene ninguna comprobación del estado asociada, el balanceador de carga de red de paso a través externo tratará todas las instancias como correctas y enviará tráfico a todas las instancias del grupo de destino. Sin embargo, si consultas el estado de un grupo de destino sin comprobación del estado, se devolverá el estado unhealthy para indicar que el grupo de destino no tiene ninguna comprobación del estado. Recomendamos que tus grupos de destino tengan comprobaciones de estado asociadas para ayudarte a gestionar tus instancias.

Los balanceadores de carga de red de paso a través externos usan comprobaciones de estado HTTP antiguas para determinar el estado de las instancias del grupo de destino. Un balanceador de carga de red de paso a través externo solo puede usar una comprobación de estado HTTP antigua, no una comprobación de estado HTTPS antigua.

Consola

Cuando usas la consola de Google Cloud , puedes crear una comprobación del estado HTTP antigua mientras creas un balanceador de carga de red de transferencia externo con un backend de grupo de destino.

No puedes usar la página Comprobaciones del estado de la Google Cloud consola para crear una comprobación del estado antigua independiente.

gcloud

Para usar gcloud compute y añadir una comprobación de estado a un grupo de destino, usa el comando target-pools add-health-checks:

  gcloud compute target-pools add-health-checks TARGET_POOL \
      --http-health-check=HEALTH_CHECK

Haz los cambios siguientes:

  • TARGET_POOL: el nombre del grupo de destino
  • HEALTH_CHECK: comprobación de estado de HTTP antigua que se va a usar con este grupo de destino.

Para eliminar una comprobación del estado, usa el comando target-pools remove-health-checks:

  gcloud compute target-pools remove-health-checks TARGET_POOL \
    --http-health-check=HEALTH_CHECK

Haz los cambios siguientes:

  • TARGET_POOL: el nombre del grupo de destino
  • HEALTH_CHECK: la comprobación de estado de HTTP antigua que se va a quitar de este grupo de destino

API

Para asociar o desasociar una comprobación de estado mediante la API, haz una solicitud HTTP POST a los URIs correspondientes:

  https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/removeHealthCheck
  https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/addHealthCheck

El cuerpo de la solicitud debe contener la comprobación de estado que se va a asociar o desasociar:

  {
    "healthCheck": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/httpHealthChecks/HEALTH_CHECK"
  }

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto Google Cloud
  • TARGET_POOL: el nombre del grupo de destino que se va a actualizar
  • REGION: la región en la que se encuentra el grupo de destino
  • HEALTH_CHECK: la comprobación de estado HTTP antigua que se va a asociar o desasociar con el grupo de destino

Para obtener más información, consulta la documentación de referencia de la API de targetPools.addHealthCheck y targetPools.removeHealthCheck.

Añadir o quitar un grupo de destino de copia de seguridad

Cuando creas un grupo de destino, puedes aplicar un grupo de destino de copia de seguridad que reciba tráfico si el grupo de destino deja de estar en buen estado.

Si nunca has configurado un grupo de destino de copia de seguridad, también debes configurar comprobaciones de estado para que la función funcione correctamente.

Consola

Los grupos de destino no se pueden editar en la consola de Google Cloud . Puedes editar un proxy de destino mediante la CLI de Google Cloud o la API.

gcloud

Para usar gcloud compute y actualizar el recurso del grupo de copias de seguridad, usa el comando target-pools set-backup:

  gcloud compute target-pools set-backup TARGET_POOL \
      --backup-pool=BACKUP_POOL \
      --failover-ratio=FAILOVER_RATIO

Haz los cambios siguientes:

  • TARGET_POOL: el nombre del grupo de destino
  • BACKUP_POOL: un nombre para el grupo de destino de copia de seguridad
  • FAILOVER_RATIO: un valor entre 0,0 y 1,0 que determina cuándo se declara que el grupo de destino no está en buen estado.

API

Para enviar una solicitud para actualizar o eliminar un grupo de copias de seguridad a través de la API, envía una solicitud POST al siguiente URI:

  POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/setBackup?failoverRatio=FAILOVER_RATIO

  {
    "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/BACKUP_POOL"
  }

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto Google Cloud
  • TARGET_POOL: el nombre del grupo de destino que se va a actualizar
  • REGION: la región en la que se encuentra el grupo de destino
  • BACKUP_POOL: el nombre del grupo de copia de seguridad que se va a asociar al grupo de destino
  • FAILOVER_RATIO: el índice de conmutación por error

Si defines un destino vacío o no defines una proporción de conmutación por error, el comportamiento del grupo de respaldo se inhabilita en este grupo de destino.

Siguientes pasos