Crea un MIG con discos con estado


En este documento, se describe cómo crear un grupo de instancias administrado (MIG) que conserve los datos en discos con un nombre de dispositivo determinado para todas las VM del MIG, incluso en caso de recreación de VM, por ejemplo, cuando una VM del MIG se repara de forma automática, se actualiza o se vuelve a crear. La preservación de discos es útil para ciertas cargas de trabajo, por ejemplo, para bases de datos o aplicaciones heredadas.

Además de preservar discos de todas las VM del grupo, también puedes configurar un MIG con estado para lo siguiente:

  • Puedes agregar y conservar discos específicos de instancias.
  • Puedes agregar y conservar los metadatos específicos de instancias.
  • Puedes agregar y conservar direcciones IP.

Para obtener más información, consulta la descripción general de MIG con estado.

También puedes leer sobre otras situaciones básicas para crear un MIG.

Antes de comenzar

  • Crea una plantilla de instancias, que es necesaria para crear un grupo de instancias administrado.
  • 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 un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

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

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

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      Para obtener más información, consulta Set up authentication for a local development environment.

      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.

Limitaciones

Un MIG con configuración con estado, un MIG con estado, tiene las siguientes limitaciones:

  • No puedes usar el ajuste de escala automático si tu MIG tiene una configuración con estado.
  • Si deseas usar actualizaciones progresivas automáticas, debes establecer el método de reemplazo en RECREATE.
  • Para los MIGs regionales con estado, debes inhabilitar la redistribución proactiva (establece el tipo de redistribución en NONE) para evitar la eliminación de instancias con estado por la redistribución automática entre zonas.
  • Si usas una configuración de todas las instancias para anular las propiedades de la plantilla de instancias, no puedes especificarlas en ninguna configuración por instancia y, al mismo tiempo, en todas las instancias del grupo de instancias.

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 discos con estado

Usa la consola de Google Cloud, la gcloud CLI, Terraform o REST.

Console

  1. Ve a la página Grupos de instancias.

    Ir a Grupos de instancias

    Los pasos restantes aparecen en la consola de Google Cloud.

  2. Haz clic en Crear grupo de instancias.
  3. Selecciona la opción Nuevo grupo de instancias administrado (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 de instancias o crea una nueva.
  6. En el campo Cantidad de instancias, especifica la cantidad inicial de VMs que necesitas en el grupo.
  7. En la sección Configuración con estado, en Configuración del grupo, haz clic en el disco que quieres que tenga estado y, luego, sigue estos pasos.
    1. En la sección Con estado, selecciona .
    2. En la lista On permanent instance deletion, elige si deseas desconectar el disco o borrar el disco cuando borres la VM de forma permanente.
    3. Para guardar la configuración, haz clic en Listo.
  8. Para crear el MIG, haz clic en Crear.

gcloud

Si quieres especificar qué discos de una plantilla de instancias deben tener estado durante la creación de un MIG, usa la marca --stateful-disk con el comando gcloud compute instance-groups managed create:

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template INSTANCE_TEMPLATE \
    --size SIZE \
    --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]

Reemplaza los siguientes elementos:

  • INSTANCE_GROUP_NAME: El nombre del grupo de instancias administrado que se creará.
  • INSTANCE_TEMPLATE: El nombre de la plantilla de instancias que se usará cuando se creen instancias. Para una plantilla de instancias regional, debes especificar la URL completa o parcial de la plantilla. Un ejemplo de una URL completa es https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template y una URL parcial es projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template.
  • SIZE: la cantidad inicial de VMs que necesitas en este grupo
  • DEVICE_NAME: el nombre de dispositivo de un disco que se especificó en la plantilla de instancias
  • DELETE_RULE: un valor que indica qué hacer con un disco con estado cuando se borra una VM. Las opciones disponibles son las siguientes:

    • never: Nunca borra el disco, en su lugar, lo separa cuando se borra la VM (predeterminado).
    • on-permanent-instance-deletion: Borra el disco cuando la instancia de VM se borra de forma permanente del grupo de instancias, por ejemplo, cuando la instancia administrada se borra de forma manual o cuando se reduce el tamaño del grupo.

    Sin importar el valor de la regla de eliminación, los discos con estado se conservan siempre en las operaciones de reparación automática, actualización y recreación de la VM.

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 especificar qué discos de la plantilla de instancias deben tener estado durante la creación de un MIG, incluye el bloque stateful_disk. En el siguiente ejemplo, se crea un MIG zonal con discos con estado. Para obtener más información sobre el recurso que se usa en el ejemplo, consulta Recurso google_compute_instance_group_manager.

resource "google_compute_instance_group_manager" "default" {
  name               = "igm-stateful-disk-basic"
  zone               = "us-central1-f"
  base_instance_name = "instance"
  target_size        = 1

  version {
    instance_template = google_compute_instance_template.default.id
  }

  stateful_disk {
    device_name = "example-disk"
    delete_rule = "NEVER"
  }

}

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

REST

A fin de especificar qué discos de la plantilla de instancias deben tener estado durante la creación de MIG, inclúyelos en el campo statefulPolicy del cuerpo de la solicitud. Para un MIG zonal, usa el método instanceGroupManagers.insert o para un MIG regional, usa el método regionInstanceGroupManagers.insert.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers

{
  "name": "NAME",
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/TEMPLATE"
    }
  ],
  "targetSize": SIZE,
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" },
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }
      }
    }
  }
}

Reemplaza los siguientes elementos:

  • PROJECT: El ID del proyecto para la solicitud.
  • ZONE: La zona en la que se encuentra el MIG (se aplica a un MIG zonal).
    • Para un MIG regional, reemplaza zones/ZONE por regions/REGION y especifica la región del MIG.
  • NAME: El nombre del MIG que se creará.
  • TEMPLATE: El nombre de la plantilla de instancias que se usará cuando se creen instancias.
  • SIZE: la cantidad inicial de instancias que necesitas en este grupo
  • DEVICE_NAME: el nombre de dispositivo de un disco que se especificó en la plantilla de instancias
  • DELETE_RULE: un valor que indica qué hacer con el disco con estado cuando se borra la instancia de VM. Las opciones disponibles son las siguientes:

    • never: Nunca borra el disco, en su lugar, lo separa cuando se borra la VM (predeterminado).
    • on_permanent_instance_deletion: Borra el disco con estado cuando su VM se borra de forma permanente del grupo de instancias, por ejemplo, cuando la instancia administrada se borra de forma manual o cuando se reduce el tamaño del grupo.

    Sin importar el valor de la regla de eliminación, los discos con estado se conservan siempre en las operaciones de reparación automática, actualización y recreación de las instancias.

¿Qué sigue?