Inhabilita y vuelve a habilitar la redistribución proactiva de VM en un MIG regional


En un grupo de instancias administrado regional (MIG), para mantener una cantidad uniforme de instancias de máquina virtual (VM) en las zonas seleccionadas de la región, usa la redistribución proactiva de instancias. Esta configuración maximiza la disponibilidad de tu aplicación en caso de una falla a nivel de zona.

La redistribución proactiva de instancias está activada de forma predeterminada para los MIG regionales. Cuando la redistribución proactiva de instancias está desactivada, el grupo no intenta redistribuir de forma proactiva las VMs entre las zonas. Inhabilitar la redistribución proactiva de instancias es útil si necesitas realizar las siguientes acciones:

  • Borrar o abandonar las VM del grupo sin afectar a otras VM en ejecución. Por ejemplo, puedes borrar una VM de trabajador por lotes después de completar el trabajo sin afectar a otros trabajadores.
  • Proteger las VMs con cargas de trabajo con estado de la eliminación automática no deseada debido a la redistribución proactiva.
  • Configura la forma de distribución objetivo del MIG en BALANCED o ANY_SINGLE_ZONE.

Puedes inhabilitar la redistribución proactiva de instancias cuando crees un MIG regional. También puedes habilitarla o inhabilitarla para un MIG regional existente.

Antes de comenzar

  • 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 código o muestras 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. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. 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.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.

Crea un grupo con redistribución proactiva de instancias inhabilitada

Para crear un MIG regional con la redistribución proactiva de instancias inhabilitada, 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. Asigna un nombre y, de forma opcional, una descripción a tu grupo de instancias.
  4. Elige una plantilla de instancias para el grupo o crea una nueva.
  5. 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.
  6. En Ubicación, selecciona Varias zonas.
  7. Elige una región y selecciona las zonas que deseas usar.
  8. Para inhabilitar la redistribución proactiva de instancias, en la sección Redistribución de instancias, anula la selección de la casilla de verificación Permitir redistribución de instancias.
  9. Continúa con el resto del proceso de creación del MIG.

gcloud

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

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

Reemplaza los siguientes elementos:

  • INSTANCE_GROUP_NAME: Es el nombre del MIG.
  • INSTANCE_TEMPLATE_NAME: Es el nombre de la plantilla de instancias que se usará para el grupo.
  • TARGET_SIZE: Es el tamaño objetivo del grupo.
  • ZONES: Es la lista de zonas de una sola región en la que deseas implementar VM.

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

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

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

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

REST

Para crear un MIG regional sin ajuste de escala automático y sin redistribución proactiva de instancias, realiza una solicitud POST al método regionInstanceGroupManagers.insert. En el cuerpo de la solicitud, incluye la propiedad updatePolicy y configura su campo instanceRedistributionType en NONE.

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"
    }
}

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 MIG.
  • INSTANCE_TEMPLATE_NAME: Es el nombre de la plantilla de instancias que se usará para el grupo.
  • TARGET_SIZE: Es el tamaño objetivo del grupo de instancias.
  • ZONE: Es el nombre de una zona en la única región en la que deseas implementar las VM.

Desactiva la redistribución proactiva de instancias

Para inhabilitar o volver a habilitar la redistribución proactiva de instancias, usa la consola de Google Cloud, gcloud CLI 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. En la columna Nombre de la lista, haz clic en el nombre del grupo de instancias que deseas modificar.
  3. Haz clic en Editar para modificar este grupo de instancias administrado.
  4. En Redistribución de instancias, anula la selección de la casilla de verificación Permitir la redistribución de instancias.
  5. Haz clic en Guardar.

gcloud

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

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

Reemplaza lo siguiente:

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

REST

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

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

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

Activa la redistribución proactiva de instancias

A fin de habilitar la redistribución proactiva de instancias, usa un comando similar al que empleas para inhabilitarla, pero con el tipo de redistribución de instancias establecido en PROACTIVE.

Si quitaste o abandonaste de forma manual algunas instancias administradas y esto provocó una distribución desigual de VM en toda la región, antes de que puedas habilitar la redistribución proactiva de instancias de nuevo, debes volver a balancear de forma manual el grupo. La diferencia en la cantidad de VMs entre dos zonas no debe ser mayor a 1 VM.

En un MIG regional, no se puede habilitar la redistribución proactiva de instancias cuando las VM están distribuidas de manera desigual entre las zonas (la diferencia en la cantidad de VM entre dos zonas es de 2 o más). Esto es para evitar la eliminación automática y no intencionada de VM en las zonas con más VM, acción que se activaría con el fin de lograr una distribución uniforme.

¿Qué sigue?