Crea un MIG con VM 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 VM en varias zonas de una región

Usa Cloud Console, la CLI de gcloud o la API de Compute Engine.

Console

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

    Ir a la página Grupos de instancias

  2. Haz clic en Crear grupo de instancias para crear un grupo de instancias nuevo.
  3. Selecciona una de las Opciones de grupo de instancias administrado nuevas: sin estado (predeterminado) o con estado.
  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 o crea una nueva.
  6. Especifica la cantidad de VM para este grupo. Recuerda aprovisionar suficientes VM 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.
  9. En Forma de distribución objetivo, selecciona Even. Si deseas seleccionar una forma diferente, consulta Configura una forma de distribución objetivo para VM en un MIG regional.
  10. Si deseas inhabilitar la redistribución proactiva de instancias, haz lo siguiente
    1. Asegúrate de que el Modo de ajuste de escala automático esté configurado en Desactivado: no realizar ajuste de escala automático.
    2. En Redistribución de instancias, anula la selección de la casilla de verificación Habilitar redistribución de instancias.
  11. Continúa con el resto del proceso de creación del MIG.

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, establece la marca --instance-redistribution-type en NONE. No puedes inhabilitar la redistribución proactiva de instancias si el ajuste de escala automático está habilitado.

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

API

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 los siguientes elementos:

  • PROJECT_ID: Es el ID del proyecto de esta solicitud.
  • REGION: Es la región del grupo.
  • BASE_INSTANCE_NAME: 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 crearían 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á.
  • 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 de forma manual la cantidad de VM en cada zona o configurar la forma de distribución objetivo del MIG como BALANCED, debes inhabilitar la redistribución proactiva de instancias.

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

¿Qué sigue?