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

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 Google Cloud console, 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 aparecen en la Google Cloud consola de.

  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, créala. Por ejemplo, el siguiente comando crea una plantilla de instancias en la región us-east1 con propiedades de instancia predeterminadas:

gcloud compute instance-templates create example-template --instance-template-region us-east1

Cuando creas el MIG, puedes especificar el ID o el nombre de una plantilla de instancias. Google recomienda que especifiques el ID porque, a diferencia de los nombres, los IDs de las plantillas de instancias no se pueden volver a usar. Para ver el ID único de la plantilla de instancias que creaste, usa el describe comando:

gcloud compute instance-templates describe example-template --region us-east1 --format="value(id)"

Luego, usa el instance-groups managed create comando con la --region marca. 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 projects/my-project/regions/us-east1/instanceTemplates/1234567890 \
    --size 30 \
    --region us-east1

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

gcloud compute instance-groups managed create example-rmig \
    --template projects/my-project/regions/us-east1/instanceTemplates/1234567890 \
    --size 30 \
    --zones us-east1-b,us-east1-c

Si no necesitas usar zonas específicas, puedes especificar todas las zonas y usar una forma de distribución balanceada. Para obtener más información, consulta Distribución de VM entre zonas.

Si deseas inhabilitar la redistribución proactiva de instancias, consulta 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 google_compute_region_instance_group_manager recurso.

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, créala.

Cuando creas el MIG, puedes especificar el ID o el nombre de una plantilla de instancias. Google recomienda que especifiques el ID porque, a diferencia de los nombres, los IDs de las plantillas de instancias no se pueden volver a usar. Para ver el ID único de la plantilla de instancias que creaste, usa el get método en la plantilla de instancias regional o global que creaste.

A continuación, crea una solicitud POST para el regionInstanceGroupManagers.insert método. 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": "INSTANCE_TEMPLATE_URL",
  "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 el nombre base de la instancia fuera example-instance, se crean instancias con nombres como example-instance-[RANDOM_STRING], en los que el servidor genera [RANDOM_STRING].
  • INSTANCE_TEMPLATE_URL: Es la URL de la plantilla de instancias que deseas usar para crear instancias en el MIG. La URL puede contener el ID o el nombre de la plantilla de instancias. Especifica uno de los siguientes valores:
    • Para una plantilla de instancias regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Para una plantilla de instancias global: INSTANCE_TEMPLATE_ID
  • 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": "INSTANCE_TEMPLATE_URL",
  "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": "projects/my-project/regions/us-east1/instanceTemplates/1234567890",
  "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?