Crear un MIG con el autoescalado habilitado


En este documento se describe cómo crear un grupo de instancias gestionado (MIG) con escalado automático que añade y elimina automáticamente VMs en función del uso medio de la CPU en todo el grupo. Por ejemplo, si el uso de la CPU del grupo es bajo, el grupo elimina automáticamente las VMs para ahorrar costes.

Puedes escalar automáticamente un MIG en función de varios tipos de señales de autoescalado. Para obtener más información, consulta la descripción general del escalador automático.

También puedes consultar otros casos prácticos básicos para crear un MIG.

Antes de empezar

  • Crea una plantilla de instancia, que es necesaria para crear un grupo de instancias gestionado.
  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    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. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

    Terraform

    Para usar las muestras de Terraform de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

      Instala Google Cloud CLI.

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

      If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Para obtener más información, consulta Set up authentication for a local development environment.

    REST

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

      Instala Google Cloud CLI.

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

Limitaciones

Para ver la lista completa de limitaciones de MIG, que varía en función de la configuración que utilices, consulta el artículo sobre las limitaciones de MIG.

Crear un MIG y habilitar el auto escalado

Usa la Google Cloud console, la CLI de gcloud, Terraform o REST.

Consola

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

    Ir a Grupos de instancias

    Los pasos restantes aparecen en la Google Cloud consola.

  2. Si tienes un grupo de instancias, selecciónalo y haz clic en Editar. Si no tienes ningún grupo de instancias, haz clic en Crear grupo de instancias.
  3. Si se trata de un grupo de instancias nuevo, asígnale un nombre y, a continuación, elige una plantilla de instancia para el grupo de instancias o crea una.
  4. Si no hay ninguna configuración de autoescalado, en Autoescalado, haz clic en Configurar autoescalado.
  5. En Modo de escalado automático, selecciona Activado: añade y quita instancias del grupo para habilitar el escalado automático.
  6. Especifica el número mínimo y máximo de instancias que quieres que cree el escalador automático en este grupo.
  7. En la sección Métricas de autoescalado, si aún no hay ninguna métrica de uso de CPU, añada una:
    1. Haz clic en Añadir métrica.
    2. En Tipo de métrica, selecciona Utilización de CPU.
    3. Introduce el Uso de CPU objetivo que quieras. Este valor se trata como un porcentaje. Por ejemplo, para un uso de la CPU del 75 %, introduce 75.
    4. En Autoescalado predictivo, selecciona Desactivado. Para obtener más información sobre el autoescalado predictivo y si es adecuado para tu carga de trabajo, consulta Escalar en función de las predicciones.
    5. Haz clic en Listo.
  8. Puedes usar el periodo de inicialización para definirlo. Este periodo indica al autoescalador cuánto tiempo tarda tu aplicación en inicializarse. Si especificas un periodo de inicialización preciso, la herramienta de adaptación dinámica tomará mejores decisiones. Por ejemplo, al escalar horizontalmente, el escalador automático ignora los datos de las VMs que aún se están inicializando, ya que es posible que esas VMs aún no representen el uso normal de tu aplicación. El periodo de inicialización predeterminado es de 60 segundos.
  9. Para crear el MIG, haz clic en Crear.

gcloud

Para habilitar el escalado automático, primero debes crear un MIG. Sigue las instrucciones para crear un MIG con VMs confinadas en una sola zona o crear un MIG con VMs distribuidas en varias zonas de una región.

A continuación, usa el subcomando set-autoscaling para habilitar el autoescalado del grupo. Por ejemplo, el siguiente comando crea un escalador automático que tiene un uso de CPU objetivo del 60%. Junto con el parámetro --target-cpu-utilization, también se necesita el parámetro --max-num-replicas al crear un escalador automático.

De forma opcional, puedes definir el --min-num-replicas que indica el número mínimo de VMs que quieres que haya en el grupo. Si no lo haces, MIG asignará el valor 2 de forma predeterminada.

Puedes usar la marca --cool-down-period para definir el periodo de inicialización, que indica al autoescalador cuánto tarda tu aplicación en inicializarse. Si especificas un periodo de inicialización preciso, la herramienta de adaptación dinámica tomará mejores decisiones. Por ejemplo, al escalar horizontalmente, el escalador automático ignora los datos de las VMs que aún se están inicializando, ya que es posible que esas VMs aún no representen el uso normal de tu aplicación. El periodo de inicialización predeterminado es de 60 segundos.

gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \
  --max-num-replicas 20 \
  --target-cpu-utilization 0.60 \
  --cool-down-period 90

Si quieres, puedes habilitar el autoescalado predictivo para escalar antes de la carga prevista. Para saber si el autoescalado predictivo es adecuado para tu carga de trabajo, consulta Escalar en función de las predicciones.

Para comprobar que el autoescalado se ha habilitado correctamente, usa el comando instance-groups managed describe, que describe el MIG correspondiente y proporciona información sobre las funciones de autoescalado de ese grupo:

gcloud compute instance-groups managed describe example-managed-instance-group

Terraform

Para habilitar el escalado automático, primero debes crear un MIG. Sigue las instrucciones para crear un MIG con VMs confinadas en una sola zona o crear un MIG con VMs distribuidas en varias zonas de una región.

Para configurar el autoescalado en un MIG, puedes usar el google_compute_autoscaler recurso.

En el siguiente ejemplo se configura el autoescalado en función del uso de la CPU en un MIG zonal.

resource "google_compute_autoscaler" "default" {
  name   = "example-autoscaler"
  zone   = "us-central1-f"
  target = google_compute_instance_group_manager.default.id

  autoscaling_policy {
    max_replicas    = 20
    min_replicas    = 0
    cooldown_period = 90

    cpu_utilization {
      target = 0.60
    }
  }
}

Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.

REST

Para habilitar el autoescalado, debes crear un MIG con VMs confinadas en una sola zona o crear un MIG con VMs distribuidas en varias zonas de una región.

Si tienes un MIG zonal, haz una solicitud POST al método autoscalers.insert. Si tienes un MIG regional, utiliza el método regionAutoscalers.insert.

Por ejemplo:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers/

El cuerpo de la solicitud debe contener los campos name, target y autoscalingPolicy. En el campo autoscalingPolicy debe definir los valores cpuUtilization y maxNumReplicas.

De forma opcional, puedes definir el minNumReplicas que indica el número mínimo de VMs que quieres que haya en el grupo. Si no lo haces, MIG asignará el valor 2 de forma predeterminada.

Puedes usar el campo coolDownPeriodSec para definir el periodo de inicialización, que indica al autoescalador cuánto tarda tu aplicación en inicializarse. Si especificas un periodo de inicialización preciso, la herramienta de adaptación dinámica tomará mejores decisiones. Por ejemplo, al escalar horizontalmente, el escalador automático ignora los datos de las VMs que aún se están inicializando, ya que es posible que esas VMs aún no representen el uso normal de tu aplicación. El periodo de inicialización predeterminado es de 60 segundos.

{
  "name": "example-autoscaler",
  "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-managed-instance-group",
  "autoscalingPolicy": {
    "maxNumReplicas": 10,
    "cpuUtilization": {
      "utilizationTarget": 0.6
    },
    "coolDownPeriodSec": 90
  }
}

Si quieres, puedes habilitar el autoescalado predictivo para escalar antes de la carga prevista. Para saber si el autoescalado predictivo es adecuado para tu carga de trabajo, consulta Escalar en función de las predicciones.

Para obtener más información sobre cómo habilitar el autoescalado basado en el uso de la CPU, consulta Escalar según uso de CPU.

Siguientes pasos