Inhabilitar y volver a habilitar la redistribución proactiva de VMs en un MIG regional


En un grupo de instancias gestionado (MIG) regional, para mantener un número uniforme de instancias de máquina virtual (VM) en las zonas seleccionadas de la región, usa la redistribución proactiva de instancias. Esta opción de configuración maximiza la disponibilidad de tu aplicación en caso de que se produzca un fallo a nivel de zona.

La redistribución proactiva de instancias está activada de forma predeterminada en los MIGs regionales. Cuando la redistribución proactiva de instancias está desactivada, el grupo no intenta redistribuir las VMs de forma proactiva entre las zonas. Desactivar la redistribución proactiva de instancias es útil si necesitas hacer lo siguiente:

  • Eliminar o abandonar las VMs del grupo sin que afecte a otras VMs en ejecución. Por ejemplo, puedes eliminar una VM de trabajador por lotes después de completar una tarea sin que afecte a otros trabajadores.
  • Protege las máquinas virtuales con cargas de trabajo con reconocimiento del estado para que no se eliminen automáticamente por la redistribución proactiva.
  • Define la forma de distribución del objetivo del MIG como BALANCED o ANY_SINGLE_ZONE.

Puedes inhabilitar la redistribución proactiva de instancias al crear un MIG regional. También puedes habilitarlo o inhabilitarlo en un MIG regional que ya tengas.

Antes de empezar

  • 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.

    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. 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.

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

Crear un grupo con la redistribución de instancias proactiva inhabilitada

Para crear un MIG regional con la redistribución proactiva de instancias inhabilitada, 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. Google Cloud

    Ir a la página Grupos de instancias

  2. Haz clic en Crear grupo de instancias para crear un grupo de instancias.
  3. Asigna un nombre y, si quieres, una descripción al grupo de instancias.
  4. Elige una plantilla de instancia para el grupo de instancias o crea una.
  5. Especifica el número de VMs de este grupo. En el caso de las cargas de trabajo de alta disponibilidad, recuerda aprovisionar suficientes máquinas virtuales para que tu aplicación siga funcionando si se produce un fallo en una zona.
  6. En Ubicación, selecciona Varias zonas.
  7. Elige una región y selecciona las zonas que quieras usar.
  8. Para inhabilitar la redistribución proactiva de instancias, en Redistribución de instancias, desmarca la casilla Permitir redistribución de instancias.
  9. Continúa con el resto del proceso de creación de MIG.

gcloud

Para crear un MIG regional sin redistribución proactiva de instancias, usa el comando gcloud compute instance-groups managed create con la marca --instance-redistribution-type definida como NONE.

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template INSTANCE_TEMPLATE_NAME \
    --size TARGET_SIZE \
    --zones ZONES \
    --instance-redistribution-type NONE

Haz los cambios siguientes:

  • INSTANCE_GROUP_NAME: el nombre del MIG
  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancia que se va a usar en el grupo
  • TARGET_SIZE: el tamaño objetivo del grupo
  • ZONES: la lista de zonas de una sola región en la que quieras desplegar las VMs.

Por ejemplo:

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

Terraform

Si aún no has creado una plantilla de instancia, que especifica el tipo de máquina, la imagen del disco de arranque, la red y otras propiedades de la VM que quieres que tengan todas las VMs de tu MIG, crea una plantilla de instancia.

Para crear un MIG regional, usa el recurso google_compute_region_instance_group_manager.

Para inhabilitar la redistribución de instancias proactiva en un MIG regional, incluye el bloque update_policy y asigna el valor NONE al campo instance_redistribution_type.

resource "google_compute_region_instance_group_manager" "default" {
  name                      = "example-rmig"
  region                    = "us-east1"
  distribution_policy_zones = ["us-east1-b", "us-east1-c"]
  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
  }
}

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

REST

Para crear un MIG regional sin autoescalado y sin redistribución proactiva de instancias, haz una solicitud POST al método regionInstanceGroupManagers.insert. En el cuerpo de la solicitud, incluye la propiedad updatePolicy y asigna el valor NONE a su campo instanceRedistributionType.

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

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

Haz los cambios siguientes:

  • PROJECT_ID: el ID de proyecto de esta solicitud
  • REGION: la región del grupo de instancias
  • INSTANCE_GROUP_NAME: el nombre del MIG
  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancia que se va a usar en el grupo
  • TARGET_SIZE: el tamaño objetivo del grupo de instancias
  • ZONE: el nombre de una zona de la única región en la que quieras implementar las VMs

Desactivar la redistribución proactiva de instancias

Para inhabilitar o volver a habilitar la redistribución proactiva de instancias, usa el Google Cloud console, la CLI de gcloud o REST.

Consola

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

    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 que quieras modificar.
  3. Haz clic en Editar para modificar este grupo de instancias administrado.
  4. Haga clic en Ubicación para desplegar la sección.
  5. En la sección Redistribución de instancias, desmarque la casilla Permitir redistribución de instancias.
  6. Haz clic en Guardar.

gcloud

Para desactivar la redistribución de instancias proactiva, usa el comando compute instance-groups managed update y asigna el valor NONE a la marca --instance-redistribution-type de la siguiente manera:

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --instance-redistribution-type NONE \
    --region REGION

Haz los cambios siguientes:

  • INSTANCE_GROUP_NAME: el nombre del MIG
  • REGION: la región del grupo de instancias

REST

Para desactivar la redistribución de instancias proactiva, usa el método regionInstanceGroupManagers.patch y asigna el valor NONE al campo instanceRedistributionType de la siguiente manera:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
  {
     "updatePolicy": {
        "instanceRedistributionType": "NONE"
     }
  }

Haz los cambios siguientes:

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

Activar la redistribución proactiva de instancias

Para activar la redistribución de instancias proactiva, usa un comando similar al que se usa para desactivarla, pero define el tipo de redistribución de instancias como PROACTIVE.

Si has eliminado o abandonado manualmente algunas instancias gestionadas, lo que ha provocado una distribución desigual de las VMs en la región, antes de volver a habilitar la redistribución proactiva de instancias, debes volver a equilibrar manualmente el grupo. La diferencia en el número de VMs entre dos zonas cualesquiera no debe superar una VM.

Un MIG regional no permite activar la redistribución proactiva de instancias cuando las VMs se distribuyen de forma desigual entre las zonas (la diferencia en el número de VMs entre dos zonas es de 2 o más VMs). De esta forma, se evita que se eliminen automáticamente VMs de zonas con más VMs, lo que se activaría para conseguir una distribución uniforme.

Siguientes pasos