Crea un MIG con VMs en varias zonas de una región


En este documento, se describe cómo crear un grupo de instancias administrado (MIG) que tiene sus VM distribuidas en varias zonas de una región. La distribución de la carga de la aplicación en varias zonas protege tu carga de trabajo contra fallas zonales. Si ocurre una falla zonal, la aplicación puede continuar con la entrega desde instancias que se ejecutan en las zonas restantes disponibles de la misma región.

Este tipo de MIG también se conoce como MIG regional. Para obtener más información, consulta Acerca de los MIG regionales.

También puedes leer sobre otras situaciones básicas para crear un MIG.

Antes de comenzar

  • Crea una plantilla de instancias, que es necesaria para crear un grupo de instancias administrado.
  • 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 un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Selecciona la pestaña para saber cómo planeas usar las muestras en esta página:

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    gcloud

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

      gcloud init
    2. Configura una región y una zona predeterminadas.

    Terraform

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

    1. Instala Google Cloud CLI.
    2. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

      gcloud init
    3. Crea credenciales de autenticación locales para tu Cuenta de Google:

      gcloud auth application-default login

    Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    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

Limitaciones

Para ver la lista completa de limitaciones del MIG, que varía según la configuración que uses, consulta Limitaciones del MIG.

Crea un MIG con VMs en varias zonas de una región

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

Console

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

    Ir a Grupos de instancias

    Los pasos restantes aparecerán automáticamente en la consola de Google Cloud.

  2. Haz clic en Crear grupo de instancias para crear uno nuevo.
  3. Selecciona una de las Opciones de grupo de instancias administrado nuevas:
  4. Asigna un nombre y, de forma opcional, una descripción a tu grupo de instancias.
  5. Elige una plantilla de instancias para el grupo de instancias o crea una nueva.
  6. En Cantidad de instancias o Ajuste de escala automático, especifica la cantidad de instancias para este grupo. Recuerda aprovisionar suficientes VMs para admitir tu aplicación si ocurre una falla de zona.
  7. En Ubicación, selecciona Varias zonas.
  8. Elige una región y selecciona las zonas que deseas usar. Si eliges una plantilla de instancias regional, la región se selecciona de forma automática en función de la región de la plantilla.
  9. En Forma de distribución objetivo, selecciona Uniforme. Si deseas seleccionar una forma diferente, consulta Configura una forma de distribución objetivo para VMs en un MIG regional.
  10. Si deseas inhabilitar la redistribución proactiva de instancias, en Redistribución de instancias, anula la selección de la casilla de verificación Permitir redistribución de instancias.
  11. Continúa con el resto del proceso de creación del MIG.
  12. Para crear el MIG, haz clic en Crear.

gcloud

Todos los MIG requieren una plantilla de instancias. Crea una plantilla de instancias si no tienes una. Por ejemplo, con el siguiente comando, se crea una plantilla de instancias básica con propiedades predeterminadas:

gcloud compute instance-templates create example-template

Luego, usa el comando instance-groups managed create con la marca --region. Por ejemplo, con el siguiente comando, se crea un MIG regional en tres zonas dentro de la región us-east1:

gcloud compute instance-groups managed create example-rmig \
    --template example-template  \
    --size 30 \
    --region us-east1

Si deseas seleccionar zonas específicas que el grupo debe usar, proporciona la marca --zones:

gcloud compute instance-groups managed create example-rmig \
    --template example-template \
    --size 30 \
    --zones us-east1-b,us-east1-c

Si deseas inhabilitar la redistribución proactiva de instancias, consulta Desactiva la redistribución proactiva de instancias.

Terraform

Si aún no creaste una plantilla de instancias, en la que se especifica el tipo de máquina, la imagen de disco de arranque, la red y otras propiedades de VM que quieres para cada VM en tu MIG, crea una plantilla de instancias.

Para crear un MIG regional, puedes usar el recurso google_compute_region_instance_group_manager.

resource "google_compute_region_instance_group_manager" "default" {
  name                      = "example-rmig"
  region                    = "us-east1"
  distribution_policy_zones = ["us-east1-b", "us-east1-c"]
  target_size               = 30
  base_instance_name        = "instance"
  version {
    instance_template = google_compute_instance_template.default.id
  }
}

Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.

REST

Todos los MIG requieren una plantilla de instancias. Crea una plantilla de instancias si no tienes una.

A continuación, crea una solicitud POST para el método regionInstanceGroupManagers.insert. En el cuerpo de la solicitud, especifica el nombre y el tamaño del grupo, y la URL a la plantilla de instancias. De forma opcional, especifica otros campos, como el nombre base para las instancias en el grupo.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "baseInstanceName": "BASE_INSTANCE_NAME",
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": "TARGET_SIZE"
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto de esta solicitud.
  • REGION: Es la región del grupo.
  • BASE_INSTANCE_NAME: (opcional) Es el nombre para cada instancia de VM que se crea como parte del grupo. Por ejemplo, si example-instance fuera el nombre base de la instancia, se crean instancias con nombres como example-instance-[RANDOM_STRING], en los que el servidor genera [RANDOM_STRING].
  • INSTANCE_TEMPLATE_NAME: Es la plantilla de instancias que se usará. Para una plantilla de instancias regional, debes especificar la URL completa o parcial de la plantilla. Un ejemplo de una URL completa es https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template y de una URL parcial es projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template.
  • INSTANCE_GROUP_NAME: Es el nombre del MIG.
  • TARGET_SIZE: Es la cantidad de VM de destino para el grupo.

Si deseas seleccionar zonas específicas, o bien crear VM en una región con menos de tres zonas o más, incluye la propiedad distributionPolicy en tu solicitud y proporciona una lista de zonas. Reemplaza ZONE por el nombre de una zona en la que deseas crear VM.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "baseInstanceName": "BASE_INSTANCE_NAME",
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": "TARGET_SIZE",
  "distributionPolicy": {
     "zones": [
       {"zone": "zones/ZONE"},
       {"zone": "zones/ZONE"}
      ]
   }
}

Por ejemplo, con el siguiente comando, se crea un MIG regional llamado example-rmig con 10 instancias administradas distribuidas en las zonas us-east1-b y us-east1-c:

POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-east1/instanceGroupManagers

{
  "instanceTemplate": "global/instanceTemplates/example-instance",
  "name": "example-rmig",
  "targetSize": 10,
  "distributionPolicy": {
      "zones": [
        {"zone": "zones/us-east1-b"},
        {"zone": "zones/us-east1-c"}
      ]
   }
}

Según cómo configures y actúes en un MIG, varias políticas y acciones pueden afectar las instancias en el grupo. Para determinar qué instancias administradas están en funcionamiento, consulta la sección sobre cómo verificar el estado de instancias administradas.

Si no hay suficiente capacidad en cada zona para admitir las VM del grupo, Compute Engine creará tantas VM como sea posible y continuará intentando crear las VM restantes cuando haya capacidad adicional disponible.

Si no especificas explícitamente zonas individuales en tu solicitud, Compute Engine elige de forma automática tres zonas para crear VM. Si necesitas crear VM en más de tres zonas o en menos, o bien si deseas elegir qué zonas se usan, puedes proporcionar una lista de zonas en tu solicitud. Para obtener más información, consulta Selección de la zona.

Distribución de VM entre zonas

De forma predeterminada, un MIG regional distribuye las VM de manera uniforme entre las zonas seleccionadas. Debido a que crearás un MIG regional, ten en cuenta que ciertos recursos, como las GPU y los discos persistentes, son zonales. Si la plantilla de instancias de tu MIG especifica recursos zonales, debes asegurarte de que todos esos recursos estén presentes en todas las zonas seleccionadas para que puedan conectarse a las VM creadas por el MIG regional. Como alternativa, si deseas que el grupo compruebe la existencia de recursos zonales por ti, puedes establecer la forma de distribución objetivo del MIG para crear instancias solo en zonas que contengan esos recursos.

Para obtener más información, consulta los siguientes documentos:

Redistribución proactiva de instancias

La redistribución proactiva de instancias está habilitada de forma predeterminada. Si necesitas administrar la cantidad de VMs en cada zona de forma manual o si necesitas configurar la forma de distribución objetivo del MIG en BALANCED o ANY_SINGLE_ZONE, debes inhabilitar la redistribución proactiva de instancias.

Para obtener más información, consulta los siguientes documentos:

¿Qué sigue?