Acelera el escalamiento horizontal con VMs suspendidas y detenidas


En este documento, se explica cómo funciona el grupo en espera de instancias de máquina virtual suspendidas y detenidas (VMs) y cómo puedes usar el grupo en espera para acelerar el escalamiento horizontal de un grupo de instancias administrado (MIG).

Antes de empezar

  • Revisa la página de introducción sobre VMs suspendidas y detenidas en un MIG.
  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

        Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

        gcloud init

      Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.

Usa la API de MIG para el ajuste de escala automático

Te recomendamos que uses el escalador automático de Compute Engine para el ajuste de escala automático en tu MIG. Sin embargo, si por algún motivo prefieres usar un escalador automático diferente, usa los extremos de la API de MIG para controlar las VMs suspendidas y detenidas.

Con la API de MIG, puedes conectar el escalador automático, por ejemplo, el escalador automático de GKE, y aprovechar el grupo en espera de VM para obtener un escalamiento horizontal más rápido.

Elige entre grupos suspendidos y detenidos

La elección entre grupos suspendidos y detenidos depende de tu caso de uso específico. Para obtener mejores resultados, debes experimentar con diferentes tipos de grupos en espera para tus situaciones de escalamiento horizontal. Esto tiene como objetivo determinar cuál se adapta mejor a tus necesidades. Es posible que las diferentes cargas de trabajo muestren un tiempo más corto para entregar con diferentes opciones. En algunos casos, la operación de copiar el estado de la memoria del almacenamiento a la VM puede llevar más tiempo que reiniciar la VM o crear una VM nueva desde cero.

Para encontrar el mejor enfoque, empieza a partir de estos lineamientos:

  • Usa VM suspendidas si las VMs requieren una inicialización de memoria lenta, ya que las VMs suspendidas conservan el estado de la memoria. Asegúrate de que tu aplicación se pueda suspender y reanudar. Mantener el estado de la memoria requiere almacenamiento adicional y puede generar costos adicionales.
  • Usa las VMs detenidas si tu inicialización de la VM se centra principalmente en la inicialización de los datos almacenados en los discos persistentes.

Cambia la política en espera en un MIG

En esta sección, se describe cómo establecer el retraso inicial y cómo configurar el modo de grupo en espera para escalar el grupo de forma horizontal.

Console

  1. En la consola de Google Cloud, ve a la página Grupos de instancias.

    Ir a Grupos de instancias

  2. En la columna Nombre de la lista, haz clic en el nombre del grupo de instancias en el que quieres cambiar la política en espera.

  3. Haz clic en Cambiar para cambiar este grupo de instancias administrado.

  4. Haz clic en Mostrar configuración avanzada.

  5. En la sección Grupo de espera, en Modo, elige Escalar de forma horizontal.

  6. En el campo Retraso inicial, escribe la cantidad de segundos que el MIG debe esperar antes de suspender o detener una VM. El retraso inicial le da a la secuencia de comandos de inicialización el tiempo para preparar tu VM para un escalamiento horizontal rápido.

  7. Haz clic en Guardar.

gcloud

Usa el comando beta instance-groups managed update y especifica el modo de operación y el retraso inicial.

gcloud beta compute instance-groups managed update MIG_NAME \
  --standby-policy-mode=scale-out-pool \
  --standby-policy-initial-delay=DELAY \
  [--region=REGION | --zone=ZONE]

Reemplaza lo siguiente:

  • MIG_NAME: Es el nombre del MIG.
  • DELAY: Es la cantidad de segundos que el MIG debe esperar antes de suspender o detener una VM. El retraso inicial le da a la secuencia de comandos de inicialización el tiempo para preparar tu VM para un escalamiento horizontal rápido.
  • REGION: Para un MIG regional, la región en la que se encuentra el MIG.
  • ZONE: Para un MIG zonal, la zona en la que se encuentra el MIG.

API

Usa el método instanceGroupManager.update y especifica el modo de operación y el retraso inicial en el cuerpo de la solicitud. Para los MIG regionales, usa el método regionInstanceGroupManager.update.

PUT https://www.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
// ...
"standbyPolicy": {
  "mode": "SCALE_OUT_POOL",
  "initialDelaySec": DELAY
}
// ...
}

Reemplaza lo siguiente:

  • PROJECT_ID: el ID de tu proyecto.
  • MIG_NAME: Es el nombre del MIG.
  • DELAY: Es la cantidad de segundos que el MIG debe esperar antes de suspender o detener una VM. El retraso inicial le da a la secuencia de comandos de inicialización el tiempo para preparar tu VM para un escalamiento horizontal rápido.
  • REGION: Para un MIG regional, la región en la que se encuentra el MIG.
  • ZONE: Para un MIG zonal, la zona en la que se encuentra el MIG.

Cambia el tamaño del grupo en espera en un MIG

En esta sección, se describe cómo cambiar el tamaño de los grupos de VMs suspendidas y detenidas en un MIG.

Console

  1. En la consola de Google Cloud, ve a la página Grupos de instancias.

    Ir a Grupos de instancias

  2. En la columna Nombre de la lista, haz clic en el nombre del grupo de instancias donde quieres cambiar los tamaños del grupo en espera.

  3. Haz clic en Cambiar para cambiar este grupo de instancias administrado.

  4. Haz clic en Mostrar configuración avanzada.

  5. En la sección Grupo de espera, ingresa los tamaños nuevos en los campos VMs suspendidas y VMs detenidas.

  6. Haz clic en Guardar.

gcloud

Usa el comandoinstance-groups managed resize Comando Beta con el--suspended-size y--stopped-size marcas.

gcloud beta compute instance-groups managed resize MIG_NAME \
--suspended-size=SUSPENDED_SIZE \
--stopped-size=STOPPED_SIZE \
[--region=REGION | --zone=ZONE]

Reemplaza lo siguiente:

  • MIG_NAME: Es el nombre del MIG en el que se suspenderá una instancia.
  • SUSPENDED_SIZE: La cantidad de VMs suspendidas que el MIG debe mantener en un momento determinado
  • STOPPED_SIZE: Es la cantidad de VMs detenidas que el MIG debe mantener en un momento determinado.
  • REGION: Para un MIG regional, la región en la que se encuentra el MIG
  • ZONE: Para un MIG zonal, la zona en la que se encuentra el MIG

API

Usa el método instanceGroupManager.update y especifica los tamaños de los grupos de VM detenidas y detenidas en el cuerpo de la solicitud. Para los MIG regionales, usa el método regionInstanceGroupManager.update.

PUT https://www.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
// ...
"targetSuspendedSize": SUSPENDED_SIZE,
"targetStoppedSize": STOPPED_SIZE
// ...
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto de la solicitud.
  • ZONE: Para un MIG zonal, la zona en la que se encuentra
    • En el caso de un MIG regional, reemplaza zones/ZONE por regions/REGION y especifica la región del MIG.
  • MIG_NAME: Es el nombre del MIG en el que se detendrá una instancia.
  • SUSPENDED_SIZE: La cantidad de VMs suspendidas que el MIG debe mantener en un momento determinado
  • STOPPED_SIZE: Es la cantidad de VMs detenidas que el MIG debe mantener en un momento determinado.

¿Qué sigue?