Establece una forma de distribución objetivo para VM en un MIG regional


Si usas un grupo de instancias administrado regional (MIG), puedes configurar la forma de distribución objetivo de ese MIG como una de las siguientes opciones:

  • UNIFORME (configuración predeterminada): El grupo crea y borra VMs para lograr y mantener la misma cantidad de VMs en las zonas seleccionadas. En una distribución EVEN, la cantidad de VMs no difiere en más de 1 entre dos zonas. Se recomienda para cargas de trabajo de entrega con alta disponibilidad.
  • BALANCEADA: El grupo prioriza la creación de VMs en zonas donde los recursos están disponibles, mientras distribuye las VMs de la manera más uniforme posible en las zonas seleccionadas para minimizar el impacto de la falla zonal. Se recomienda para cargas de trabajo de entrega o por lotes con alta disponibilidad.
  • CUALQUIERA: El grupo elige zonas para crear instancias de VM a fin de cumplir con la cantidad solicitada de VMs dentro de las restricciones de recursos actuales y maximizar el uso de las reservas zonales no utilizadas. Se recomienda para cargas de trabajo por lotes que no requieren de alta disponibilidad.
  • CUALQUIER ZONA: el grupo crea todas las instancias de VM dentro de una sola zona. La zona se elige en función de la compatibilidad de hardware, la disponibilidad actual de recursos y cuotas, y las reservas coincidentes. Se recomienda en combinación con una política de colocación de instancia compacta para cargas de trabajo que requieren una comunicación extensa entre las VMs.

Para usar VMs reservadas en un grupo de instancias administrado regional, crea reservas idénticas con el mismo nombre en cada zona aplicable. Luego, apunta a esas reservas por su nombre en la plantilla de instancia del grupo.

Para ayudarte a elegir una forma, consulta la tabla de comparación, casos de uso y cómo funcionan las formas de distribución.

Establece una forma de distribución objetivo cuando crees tu MIG regional o actualiza la forma objetivo de un MIG regional existente.

Antes de comenzar

  • Configura la autenticación si aún no lo hiciste. 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 sobre 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

  • Solo puedes seleccionar zonas para tu MIG cuando creas el MIG.
  • Si especificas recursos en la plantilla de instancias de tu MIG o configuración con estado que no están disponibles en todas las zonas seleccionadas, se aplican las siguientes limitaciones:

    • Debes configurar la forma de distribución objetivo en BALANCED, ANY o ANY_SINGLE_ZONE.
    • Debes asegurarte de que los recursos que requiere el MIG (por ejemplo, los discos existentes, los tipos de máquinas o las GPU) estén disponibles en al menos una de las zonas seleccionadas.
    • Si deseas actualizar la configuración del MIG (por ejemplo, la plantilla de instancias) a una configuración que no se puede crear en todas las zonas seleccionadas, debes quitar instancias administradas desde todas las zonas no compatibles antes de establecer la configuración nueva.
  • Para configurar la forma de distribución objetivo como BALANCED o ANY_SINGLE_ZONE, debes inhabilitar la redistribución proactiva de instancias.

  • Si deseas realizar un ajuste de escala automático en un MIG regional, debes configurar la forma de distribución objetivo del grupo en BALANCED ([Vista previa](/products/#product-launch-stages)) o EVEN.
  • Si configuras la forma de distribución objetivo como BALANCED, ANY o ANY_SINGLE_ZONE, se aplican las siguientes limitaciones:

    • Las actualizaciones Canary con dos versiones no son compatibles.
    • En caso de que exista disponibilidad limitada de los recursos solicitados en toda la región, el grupo podría programar la creación de instancias de VM en una zona en la que los recursos ya no están disponibles. Puedes probar disminuir y aumentar el tamaño del grupo para obtener los recursos solicitados en otras zonas.
    • Las actualizaciones progresivas que usan el método de reemplazo SUBSTITUTE intentarán crear las instancias actualizadas nuevas en la misma zona que las máquinas desactualizadas, aunque la zona no tenga los recursos necesarios para adaptarse a los requisitos de la versión nueva. Para mediar este comportamiento, puedes borrar las VM desactualizadas de la zona limitada y, luego, aumentar el tamaño del grupo según la cantidad de VM borradas. El grupo crea instancias a partir de la última plantilla en zonas donde la capacidad esté disponible.
    • Si deseas actualizar la plantilla de instancias del grupo a una plantilla que especifica recursos que no están disponibles en todas las zonas seleccionadas, debes quitar las instancias administradas de las zonas no compatibles antes de configurar la plantilla nueva.
  • Si configuras la forma de distribución objetivo como ANY_SINGLE_ZONE y el grupo tiene VMs existentes en una sola zona, solo puedes crear VMs adicionales en esa zona. Si deseas usar una zona diferente, primero debes escalar el grupo a cero VMs.

  • Si necesitas aprovisionar un grupo de VMs de usuario único, debes configurar la forma de distribución objetivo del MIG como EVEN. Crea tus grupos de nodos en las mismas zonas que las del MIG y configura las afinidades del nodo del MIG en la plantilla de la instancia del MIG.

Crea un grupo con una forma de distribución objetivo

Para crear tu grupo, seleccionar sus zonas y configurar su forma de distribución objetivo, usa la consola de Google Cloud , gcloud CLI, Terraform o REST.

Console

  1. En la consola de Google Cloud, 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. En el caso de las cargas de trabajo con alta disponibilidad, 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.

    • Si deseas que el MIG pueda usar todas las zonas de la región, selecciona todas las zonas disponibles.
    • Ten en cuenta que no puedes actualizar un MIG regional para usar diferentes zonas después de crearlo.
  9. Elige una forma de distribución objetivo.

    1. Si deseas seleccionar Cualquiera o Cualquier zona, en la sección Ajuste de escala automático, haz clic en Modo de ajuste de escala automático. y selecciona Borrar configuración del ajuste de escala automático.
    2. Si deseas seleccionar Cualquier zona o Balanceada, en la sección Redistribución de instancias, no selecciones Habilitar la redistribución de instancias.
  10. Continúa con el resto del proceso de creación del MIG.

gcloud

Usa el comando gcloud compute instance-groups managed create e incluye la marca --target-distribution-shape.

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template TEMPLATE \
    --size SIZE \
    --region REGION \
    --zones ZONES \
    --target-distribution-shape SHAPE

Reemplaza lo siguiente:

  • INSTANCE_GROUP_NAME: Es el nombre del grupo de instancias.
  • TEMPLATE: Es el nombre de la plantilla de instancias que se usará para el grupo.
  • SIZE: Es el tamaño objetivo del grupo de instancias.
  • REGION: Es la región en la que quieres que esté el grupo.
  • ZONES (opcional): Es una lista de zonas de la región en la que deseas implementar instancias de VM. De forma predeterminada, Compute Engine selecciona tres zonas para ti.

    • Si deseas que el MIG pueda usar todas las zonas de la región, especifica todas las zonas disponibles. Para obtener una lista de zonas de la región, usa el siguiente comando:

      gcloud compute zones list --filter=region:REGION --format='list(NAME)'
    • Ten en cuenta que no puedes actualizar un MIG regional para usar diferentes zonas después de crearlo.

  • SHAPE: Es la forma de distribución objetivo. Esto puede ser uno de los siguientes valores:

    • even (configuración predeterminada): El grupo crea y borra VMs para lograr y mantener la misma cantidad de VMs en las zonas seleccionadas. En una distribución EVEN, la cantidad de VMs no difiere en más de 1 entre dos zonas. Se recomienda para cargas de trabajo de entrega con alta disponibilidad.
    • balanced: El grupo prioriza la creación de VMs en zonas donde los recursos están disponibles, mientras distribuye las VMs de la manera más uniforme posible en las zonas seleccionadas para minimizar el impacto de la falla zonal. Se recomienda para cargas de trabajo de entrega o por lotes con alta disponibilidad.
    • any: El grupo elige zonas para crear instancias de VM a fin de cumplir con la cantidad solicitada de VMs dentro de las restricciones de recursos actuales y maximizar el uso de las reservas zonales no utilizadas. Se recomienda para cargas de trabajo por lotes que no requieren de alta disponibilidad.
    • any-single-zone: el grupo crea todas las instancias de VM dentro de una sola zona. La zona se elige en función de la compatibilidad de hardware, la disponibilidad actual de recursos y cuotas, y las reservas coincidentes. Se recomienda en combinación con una política de colocación de instancia compacta para cargas de trabajo que requieren una comunicación extensa entre las VMs.

Por ejemplo, para crear un MIG regional con una forma de distribución objetivo equilibrada, configura la marca --target-distribution-shape en balanced.

gcloud compute instance-groups managed create example-rmig \
    --template example-template \
    --size 30 \
    --zones us-east1-b,us-east1-c \
    --target-distribution-shape balanced \
    --instance-redistribution-type none

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, usa el recurso google_compute_region_instance_group_manager .

En el siguiente ejemplo, se crea un MIG regional con la forma de distribución objetivo BALANCED.

resource "google_compute_region_instance_group_manager" "default" {
  name                             = "example-rmig"
  region                           = "us-east1"
  distribution_policy_zones        = ["us-east1-b", "us-east1-c"]
  distribution_policy_target_shape = "BALANCED"
  update_policy {
    type                         = "PROACTIVE"
    minimal_action               = "REFRESH"
    instance_redistribution_type = "NONE"
    max_unavailable_fixed        = 3
  }
  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

Llama al método regionInstanceGroupManagers.insert. En el cuerpo de la solicitud, incluye la propiedad distributionPolicy y establece su campo targetShape.

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

{
    "name": INSTANCE_GROUP_NAME,
    "instanceTemplate": "global/instanceTemplates/TEMPLATE",
    "targetSize": SIZE,
    "distributionPolicy": {
        "zones": [
            {"zone": "zones/ZONE1"},
            {"zone": "zones/ZONE2"},
            {"zone": "zones/ZONE3"},
        ],
        "targetShape": "SHAPE"
    }
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto de esta solicitud.
  • REGION: Es la región para el grupo de instancias.
  • INSTANCE_GROUP_NAME: Es el nombre del grupo de instancias.
  • TEMPLATE: Es el nombre de la plantilla de instancias que se utilizará para el grupo de instancias.
  • SIZE: Es el tamaño objetivo del grupo de instancias.
  • ZONE: Es el nombre de una zona en la región en la que deseas implementar instancias de VM.
    • Si deseas que el MIG pueda usar todas las zonas de la región, especifica todas las zonas disponibles. Para obtener una lista de las zonas de una región, llama al método regions.get.
    • Ten en cuenta que no puedes actualizar un MIG regional para usar diferentes zonas después de crearlo.
  • SHAPE: Es la forma de distribución objetivo. Puede ser uno de los siguientes valores:
    • EVEN (configuración predeterminada): El grupo crea y borra VMs para lograr y mantener la misma cantidad de VMs en las zonas seleccionadas. En una distribución EVEN, la cantidad de VMs no difiere en más de 1 entre dos zonas. Se recomienda para cargas de trabajo de entrega con alta disponibilidad.
    • BALANCED: El grupo prioriza la creación de VMs en zonas donde los recursos están disponibles, mientras distribuye las VMs de la manera más uniforme posible en las zonas seleccionadas para minimizar el impacto de la falla zonal. Se recomienda para cargas de trabajo de entrega o por lotes con alta disponibilidad.
    • ANY: El grupo elige zonas para crear instancias de VM a fin de cumplir con la cantidad solicitada de VMs dentro de las restricciones de recursos actuales y maximizar el uso de las reservas zonales no utilizadas. Se recomienda para cargas de trabajo por lotes que no requieren de alta disponibilidad.
    • ANY_SINGLE_ZONE: el grupo crea todas las instancias de VM dentro de una sola zona. La zona se elige en función de la compatibilidad de hardware, la disponibilidad actual de recursos y cuotas, y las reservas coincidentes. Se recomienda en combinación con una política de colocación de instancia compacta para cargas de trabajo que requieren una comunicación extensa entre las VMs.

Cambia la forma de distribución objetivo de un grupo existente

Puedes cambiar la forma de distribución objetivo en un MIG regional existente, pero con las siguientes limitaciones:

  • Si deseas cambiar la forma de distribución objetivo a BALANCED, primero debes inhabilitar la redistribución proactiva.
  • Si deseas cambiar la forma de distribución objetivo a EVEN y si la distribución actual de instancias no es uniforme, primero debes inhabilitar la redistribución proactiva.
  • Si cambias la forma a EVEN y deseas volver a habilitar la redistribución proactiva, primero debes volver a balancear el grupo de forma manual.
  • Si deseas cambiar la forma de distribución objetivo a EVEN, pero la plantilla de instancias especifica recursos que no se admiten en todas las zonas seleccionadas, primero debes actualizar la plantilla de instancias del grupo con una que sea compatible con todas las zonas seleccionadas.

Consola

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

    Ir a la página Grupos de instancias

  2. En la columna Nombre de la lista, haz clic en el nombre del grupo de instancias en que quieres cambiar la forma de distribución objetivo.
  3. Haz clic en Editar para modificar este grupo de instancias administrado.
  4. En Forma de distribución objetivo, especifica la forma que desees.
  5. Haz clic en Guardar para aplicar la plantilla nueva.

gcloud

Usa el comando gcloud compute instance-groups managed update e incluye la marca --target-distribution-shape.

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --target-distribution-shape SHAPE

Reemplaza lo siguiente:

  • INSTANCE_GROUP_NAME: Es el nombre del grupo de instancias.
  • SHAPE: Es la forma de distribución objetivo. Puede ser uno de los siguientes valores:
    • even (configuración predeterminada): El grupo crea y borra VMs para lograr y mantener la misma cantidad de VMs en las zonas seleccionadas. En una distribución EVEN, la cantidad de VMs no difiere en más de 1 entre dos zonas. Se recomienda para cargas de trabajo de entrega con alta disponibilidad.
    • balanced: El grupo prioriza la creación de VMs en zonas donde los recursos están disponibles, mientras distribuye las VMs de la manera más uniforme posible en las zonas seleccionadas para minimizar el impacto de la falla zonal. Se recomienda para cargas de trabajo de entrega o por lotes con alta disponibilidad.
    • any: El grupo elige zonas para crear instancias de VM a fin de cumplir con la cantidad solicitada de VMs dentro de las restricciones de recursos actuales y maximizar el uso de las reservas zonales no utilizadas. Se recomienda para cargas de trabajo por lotes que no requieren de alta disponibilidad.
    • any-single-zone: el grupo crea todas las instancias de VM dentro de una sola zona. La zona se elige en función de la compatibilidad de hardware, la disponibilidad actual de recursos y cuotas, y las reservas coincidentes. Se recomienda en combinación con una política de colocación de instancia compacta para cargas de trabajo que requieren una comunicación extensa entre las VMs.

REST

Llama al método regionInstanceGroupManagers.patch. En el cuerpo de la solicitud, incluye la propiedad distributionPolicy y establece su campo targetShape.

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

{
    "distributionPolicy": {
        "targetShape": "SHAPE"
    }
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto de esta solicitud.
  • REGION: Es la región para el grupo de instancias.
  • INSTANCE_GROUP_NAME: Es el nombre del grupo de instancias.
  • SHAPE: Es la forma de distribución objetivo. Puede ser uno de los siguientes valores:
    • EVEN (configuración predeterminada): El grupo crea y borra VMs para lograr y mantener la misma cantidad de VMs en las zonas seleccionadas. En una distribución EVEN, la cantidad de VMs no difiere en más de 1 entre dos zonas. Se recomienda para cargas de trabajo de entrega con alta disponibilidad.
    • BALANCED: El grupo prioriza la creación de VMs en zonas donde los recursos están disponibles, mientras distribuye las VMs de la manera más uniforme posible en las zonas seleccionadas para minimizar el impacto de la falla zonal. Se recomienda para cargas de trabajo de entrega o por lotes con alta disponibilidad.
    • ANY: El grupo elige zonas para crear instancias de VM a fin de cumplir con la cantidad solicitada de VMs dentro de las restricciones de recursos actuales y maximizar el uso de las reservas zonales no utilizadas. Se recomienda para cargas de trabajo por lotes que no requieren de alta disponibilidad.
    • ANY_SINGLE_ZONE: el grupo crea todas las instancias de VM dentro de una sola zona. La zona se elige en función de la compatibilidad de hardware, la disponibilidad actual de recursos y cuotas, y las reservas coincidentes. Se recomienda en combinación con una política de colocación de instancia compacta para cargas de trabajo que requieren una comunicación extensa entre las VMs.

Visualiza la política de distribución de instancias configurada

Consola

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

    Ir a la página Grupos de instancias

    En la página se detallan los grupos de instancias que tengas.
  2. Haz clic en el nombre del grupo de instancias que quieres examinar. Se abrirá una página con las propiedades del grupo de instancias y una lista de instancias incluidas en el grupo.
  3. Haz clic en Detalles.
  4. En la sección Ubicación, busca Forma de distribución objetivo.

gcloud

Ejecuta el comando gcloud compute instance-groups managed describe.

gcloud compute instance-groups managed describe INSTANCE_GROUP_NAME \
    --region REGION

Con el comando, se muestran los detalles del grupo, incluido el campo distributionPolicy.targetShape:

...
distributionPolicy:
  targetShape: BALANCED
  zones:
  - zone: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f
  ...
name: my-group
region: https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1
...

REST

Realiza una solicitud GET al método regionInstanceGroupManagers.get.

GET https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto de esta solicitud.
  • REGION Es la región para el grupo de instancias.
  • INSTANCE_GROUP_NAME: Es el nombre del grupo de instancias

La forma de distribución objetivo se muestra en el campo distributionPolicy.targetShape. Por ejemplo:

{
  "name": "my-instance-group",
  "distributionPolicy": {
    "targetShape": "BALANCED",
  },
  "targetSize": 50,
  ...
}

¿Qué sigue?