Repara una VM en una zona alternativa

En este documento, se describe cómo permitir que un grupo de instancias administrado (MIG) regional repare una instancia de máquina virtual (VM) en una zona alternativa cuando el MIG no puede reparar la VM en su zona original. Para obtener más información sobre las reparaciones en un MIG, consulta Información sobre la reparación de las VMs para alta disponibilidad.

Cuando creas un MIG regional, seleccionas una o más zonas en las que el MIG distribuye sus VMs. De forma predeterminada, si falla una VM en el MIG, el MIG intenta reparar esa VM en su zona original. De manera opcional, puedes permitir que el MIG repare esa VM en una de las otras zonas seleccionadas, lo que es útil en los casos en que el MIG no puede reparar la VM en su zona original. El MIG elige la zona alternativa en función de la capacidad y la cuota disponibles.

Limitaciones

Cuando configuras un MIG regional para reparar una VM en una zona alternativa, se aplican las siguientes limitaciones:

Antes de comenzar

  • Si aún no lo hiciste, configura la autenticación. La autenticación verifica tu identidad para acceder a los Google Cloud servicios y las APIs. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Selecciona la pestaña según cómo planeas usar las muestras en esta página:

    Console

    Cuando usas la Google Cloud consola para acceder a los Google Cloud servicios y las APIs, no necesitas configurar la autenticación.

    gcloud

    1. Instala la Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI con el siguiente comando:

      gcloud init

      Si usas un proveedor de identidad (IdP) externo, primero debes acceder a gcloud CLI con tu identidad federada.

  • Configura una región y una zona predeterminadas.
  • Terraform

    Para usar las muestras de Terraform de esta página en un entorno de desarrollo local, instala e inicializa la gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

    1. Instala la Google Cloud CLI.

    2. Si usas un proveedor de identidad (IdP) externo, primero debes acceder a la gcloud CLI con tu identidad federada.

    3. Si usas un shell local, crea credenciales de autenticación locales para tu cuenta de usuario:

      gcloud auth application-default login

      No es necesario que lo hagas si usas Cloud Shell.

      Si se muestra un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a gcloud CLI con tu identidad federada.

    Si deseas 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 incluidas en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la gcloud CLI.

      Instala la Google Cloud CLI.

      Si usas un proveedor de identidad (IdP) externo, primero debes acceder a la gcloud CLI con tu identidad federada.

    Para obtener más información, consulta Autentícate para usar REST en la Google Cloud documentación de autenticación de.

Permite reparaciones en una zona alternativa

Para permitir que un MIG repare una VM en una zona alternativa, selecciona una de las siguientes opciones:

Console

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

    Ir a Grupos de instancias

  2. Si ya tienes un MIG, haz lo siguiente:

    1. Haz clic en el nombre del MIG.
    2. Haz clic en Editar.
  3. Si aún no tienes un MIG, haz lo siguiente:

    1. Haz clic en Crear grupo de instancias.
    2. Ingresa un Nombre.
    3. Elige una plantilla de instancias.
    4. En la sección Ubicación, selecciona Varias zonas y, luego, selecciona una región y zonas.
    5. En la lista desplegable Forma de distribución objetivo, selecciona Balanced o Any.

      • Si seleccionas Balanced, en el cuadro de diálogo que aparece, haz clic en Disable instance redistribution.

      • Si deseas seleccionar Any, primero debes borrar la configuración del ajuste de escala automático. Para borrar el ajuste de escala automático, en la lista desplegable Modo de ajuste de escala automático, haz clic en Borrar configuración del ajuste de escala automático.

  4. En la sección Ciclo de vida de la instancia de VM, asegúrate de que los siguientes campos estén configurados de la siguiente manera:

    1. La lista Acción predeterminada en caso de error está configurada como Reparar instancia.

    2. La opción Actualizaciones durante la reparación de la instancia de VM está configurada como Actualizar la configuración de la instancia.

    3. En la sección Cambiar la zona durante la reparación de instancias de VM, selecciona la casilla de verificación Permitir la reparación de VMs en una zona alternativa.

  5. Para la otra configuración, puedes usar los valores predeterminados o cambiar los campos.

  6. Cuando termines, haz clic en Guardar para un MIG existente o en Crear para un MIG nuevo.

gcloud

Para configurar un MIG existente para reparar la VM en una zona alternativa, usa el update comando:

gcloud compute instance-groups managed update MIG_NAME \
    --on-repair-allow-changing-zone=YES \
    --force-update-on-repair \
    --region=REGION

Para crear un MIG que pueda reparar la VM en una zona alternativa, usa el create comando:

gcloud compute instance-groups managed create MIG_NAME \
    --template=INSTANCE_TEMPLATE_URL \
    --size=SIZE \
    --zones=ZONES \
    --target-distribution-shape=SHAPE \
    --instance-redistribution-type=none \
    --on-repair-allow-changing-zone=YES \
    --force-update-on-repair

Reemplaza lo siguiente:

  • MIG_NAME: Es el nombre del MIG.
  • 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
  • SIZE: Es el objetivo de tamaño del MIG.
  • ZONES: Es la lista de zonas de una región en la que deseas crear las VMs en el MIG.
  • SHAPE: Es la forma de distribución objetivo. Este valor puede ser balanced o any.
  • REGION: Es la región en la que se encuentra el MIG.

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 que pueda reparar la VM en una zona alternativa, usa el google_compute_region_instance_group_manager recurso.

resource "google_compute_region_instance_group_manager" "default" {
  provider           = google-beta
  name               = "example-rmig"
  base_instance_name = "example-rmig-instance"
  region             = "us-central1"

  target_size                      = 3
  distribution_policy_target_shape = "BALANCED"

  version {
    instance_template = google_compute_instance_template.default.id
  }

  instance_lifecycle_policy {
    default_action_on_failure = "REPAIR"
    force_update_on_repair    = "YES"
    on_repair {
      allow_changing_zone = "YES"
    }
  }

  update_policy {
    instance_redistribution_type = "NONE"
    type                         = "OPPORTUNISTIC"
    minimal_action               = "REPLACE"
    max_surge_fixed              = 0
    max_unavailable_fixed        = 6
  }
}

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 configurar un MIG existente para reparar la VM en una zona alternativa, usa el regionInstanceGroupManagers.patch método:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME
{
    "instanceLifecyclePolicy": {
      "onRepair": {
        "allowChangingZone": "YES"
      },
      "forceUpdateOnRepair": "YES"
    }
}

Para crear un MIG que pueda reparar la VM en una zona alternativa, usa el regionInstanceGroupManagers.insert método:

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

{
  "name": "MIG_NAME",
  "instanceTemplate": "INSTANCE_TEMPLATE_URL",
  "targetSize": SIZE,
  "distributionPolicy": {
    "targetShape": "SHAPE"
  }
  "updatePolicy": {
    "instanceRedistributionType": none
  }
  "instanceLifecyclePolicy": {
    "forceUpdateOnRepair": "YES",
    "onRepair": {
      "allowChangingZone": "YES"
    }
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es tu ID del proyecto.
  • REGION: Es la región en la que se encuentra el MIG.
  • MIG_NAME: Es el nombre del MIG.
  • 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
  • SIZE: Es el objetivo de tamaño del MIG.
  • SHAPE: Es la forma de distribución objetivo. Este valor puede ser BALANCED o ANY.

No permitas reparaciones en una zona alternativa

Si configuraste un MIG para reparar la VM en una zona alternativa, puedes restablecer la configuración predeterminada en la que el MIG repara la VM en la zona original.

Para no permitir reparaciones en una zona alternativa, selecciona una de las siguientes opciones:

Console

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

    Ir a Grupos de instancias

  2. Haz clic en el nombre del MIG.

  3. Haz clic en Editar.

  4. Ve a la sección Ciclo de vida de la instancia de VM.

  5. En la sección Cambiar la zona durante la reparación de instancias de VM, desmarca la casilla de verificación Permitir la reparación de VMs en una zona alternativa.

  6. Haz clic en Guardar.

gcloud

Para no permitir reparaciones en una zona alternativa, usa el update comando:

gcloud compute instance-groups managed update MIG_NAME \
    --on-repair-allow-changing-zone=NO \
    --region=REGION

Reemplaza lo siguiente:

  • MIG_NAME: Es el nombre del MIG.
  • REGION: Es la región en la que se encuentra el MIG.

REST

Para no permitir reparaciones en una zona alternativa, usa el regionInstanceGroupManagers.patch método:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME
{
    "instanceLifecyclePolicy": {
      "onRepair": {
        "allowChangingZone": "NO"
      }
    }
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es tu ID del proyecto.
  • REGION: Es la región en la que se encuentra el MIG.
  • MIG_NAME: Es el nombre del MIG.

¿Qué sigue?