Crea grupos de instancias administrados

En esta página, se describe cómo crear un grupo de instancias administrado (MIG), que es un conjunto de instancias administradas que se controlan como una sola entidad. Los MIG admiten funciones como la reparación automática, el balanceo de cargas, el ajuste de escala automático, la actualización automática y las cargas de trabajo con estado..

Puedes crear MIG zonales (de una sola zona) o MIG regionales (de varias zonas). Los MIG regionales proporcionan una mayor disponibilidad en comparación con los zonales porque las instancias administradas de un MIG regional se distribuyen de manera uniforme entre varias zonas de una misma región. Sin embargo, los MIG regionales tienen limitaciones diferentes en comparación con las limitaciones de los MIG zonales.

Un MIG basa cada una de sus instancias administradas en una plantilla de instancias común y una configuración con estado opcional. Cada instancia administrada es una entidad de datos dentro del MIG que contiene el estado actual y el estado deseado para una instancia de VM real. Los MIG mantienen la alta disponibilidad de las aplicaciones, ya que mantienen las VM disponibles de forma proactiva, es decir, en el estado RUNNING.

Para obtener más información sobre los grupos de instancias y sus características, consulta la descripción general de los grupos de instancias.

Antes de comenzar

Limitaciones

  • Los MIG pueden contener hasta 1,000 VM. Si necesitas más comunícate con el equipo de asistencia.
  • Cuando se actualizan, no se pueden especificar más de 1,000 instancias en una sola solicitud.

Usa MIG para aplicaciones sin estado

Puedes usar MIG en aplicaciones sin estado, que no dependen del estado específico de la instancia de máquina virtual (VM) subyacente para ejecutarse. La aplicación no debe depender de las propiedades de VM que no se conservan, como el contenido de los discos conectados o los datos en la memoria. Si la aplicación requiere que se conserven las propiedades de la VM, consulta MIG con estado.

De manera predeterminada, todos los discos persistentes en los MIG sin estado se borran o se vuelven a crear cuando se borra o se vuelve a crear la VM correspondiente, por lo que no debes depender de los discos conectados como datos persistentes en un MIG sin estado. Para conservar los datos, Google recomienda que actualices con regularidad las imágenes personalizadas con opciones de configuración y software actualizados. También puedes usar secuencias de comandos de inicio y configurar las aplicaciones a fin de crear una copia de seguridad de los datos en otra ubicación centralizada, como Cloud Storage.

En las plantillas de instancias, puedes especificar una imagen de contenedor o una imagen personalizada con secuencias de comandos de inicio relevantes, para que, cuando se vuelva a crear una VM, esta tenga instaladas las apps necesarias y pueda acceder a los datos requeridos. Para obtener más información sobre cómo crear plantillas de instancias, consulta Plantillas de instancias deterministas.

Usa MIG para aplicaciones con estado (Beta)

Los grupos de instancias administrados también admiten aplicaciones con estado. Los MIG con estado conservan el estado único de cada VM (nombre de la instancia de VM, metadatos y discos persistentes conectados) en el reinicio automático, la recreación, la reparación automática o la actualización de la máquina.

Usa MIG con estado para las aplicaciones que tengan datos o configuración con estado, como las bases de datos, las aplicaciones de procesamiento de datos, las aplicaciones heredadas y las cargas de trabajo por lotes de larga duración con puntos de control.

Se recomienda que uses MIG con estado cuando implementes una aplicación o un clúster con estado en Compute Engine y quieras mejorar su disponibilidad con la reparación automática y la implementación de varias zonas, o si deseas simplificar y acelerar las actualizaciones con actualizaciones progresivas automatizadas.

Para obtener información sobre cómo crear un MIG con estado o agregar una configuración con estado a un MIG existente, consulta Configura los MIG con estado.

Crea un grupo de instancias administrado

Antes de crear un grupo de instancias administrado, debes crear una plantilla de instancias para especificar la imagen de sistema operativo o la imagen de contenedor y la configuración de las VM del grupo.

Después de crear la plantilla, crea el grupo de instancias administrado mediante Google Cloud Console, la herramienta de gcloud compute o la API.

Console

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

    Ir a la página Grupos de instancias

  2. Haz clic en Crear un grupo de instancias.
  3. Ingresa un nombre para el MIG y selecciona la zona en la que desees alojarlo.
  4. En Tipo de grupo, selecciona Grupo de instancias administrado.
  5. En Plantilla de instancias, selecciona una plantilla de instancias. Si no hay plantillas disponibles, crea una.
  6. Especifica la cantidad de instancias que deseas crear en el grupo. De manera opcional, puedes habilitar el ajuste de escala automático para que el grupo agregue o quite instancias de forma automática según el uso, o la reparación automática a fin de realizar verificaciones de estado basadas en aplicaciones en las VM del grupo.
  7. Haz clic en Crearpara crear el grupo nuevo.

gcloud

Crea un grupo de instancias con el subcomando instance-groups managed create:

gcloud compute instance-groups managed create instance-group-name \
    --base-instance-name base-name \
    --size size \
    --template instance-template \
    --zone zone

Reemplaza los siguientes elementos:

  • instance-group-name: El nombre de este grupo de instancias
  • base-name: El nombre que se usará para las VM creadas en este grupo de instancias. Debido a que estas VM se basan en una misma plantilla, a cada una se le asigna una string aleatoria como parte del nombre. El nombre base se antepone a esta string aleatoria. Por ejemplo, si configuras el nombre base como example, las VM tendrán nombres como example-yahs y example-qtyz. Si necesitas nombres específicos, consulta Crea instancias con nombres específicos en MIG
  • size es el tamaño del grupo de instancias.
  • instance-template: El nombre de la plantilla de instancias que se usará en este grupo
  • zone: Una de las zonas disponibles para Compute Engine

    Por ejemplo, con el siguiente comando, se crea un grupo de instancias llamado example-group, cuyo nombre de VM base es test. El grupo contiene tres instancias:

    gcloud compute instance-groups managed create example-group \
      --base-instance-name test \
      --size 3 \
      --template an-instance-template

API

En la API, crea una solicitud POST para los métodos instanceGroupManagers.insert o regionInstanceGroupManagers.insert. En el cuerpo de la solicitud, incluye el nombre y el tamaño del grupo, el nombre base de las VM del grupo y la URL de la plantilla de instancias.

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers

{
  "baseInstanceName": "base-name",
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/instance-template"
    }
  ],
  "name": "instance-group-name",
  "targetSize": size
}

Reemplaza los siguientes elementos:

  • project-id: El ID del proyecto para la solicitud.
  • zone: La zona de la solicitud
    • En un MIG regional, reemplaza zones/zone por regions/region y especifica una región.
  • instance-group-name: El nombre de este grupo de instancias
  • base-name: El nombre que se usará para las VM creadas en este grupo de instancias. Debido a que estas VM se basan en una misma plantilla, a cada una se le asigna una string aleatoria como parte del nombre. El nombre base se antepone a esta string aleatoria. Por ejemplo, si configuras el nombre base como example, las VM tendrán nombres como example-yahs y example-qtyz. Si necesitas nombres específicos, consulta Crea instancias con nombres específicos en MIG
  • size: El tamaño del grupo de instancias
  • instance-template es la plantilla de instancias que se usará en este grupo.

Según cómo configures y actúes en un MIG, varias políticas y acciones pueden afectar las instancias en el grupo. Para determinar qué instancias administradas están en funcionamiento, consulta la sección sobre cómo verificar el estado de instancias administradas.

Cambia la plantilla de instancias de un grupo de instancias administrado

Puedes cambiar la plantilla de instancias de un grupo de instancias administrado sin aplicar cambios en las instancias existentes. Cuando realizas una solicitud, el grupo de instancias administrado usa la plantilla nueva para agregar o volver a crear instancias, pero la plantilla no actualiza de forma automática las VM existentes del grupo. Esto te permite controlar con exactitud qué VM se actualizan, pero hace que el grupo de instancias contenga VM diferentes.

Luego de crear una plantilla de instancias nueva, cambia la plantilla para un grupo de instancias existente.

Console

  1. En Cloud Console, 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 donde quieres cambiar la plantilla de instancias.
  3. Haz clic en Editar grupo para modificar este grupo de instancias administrado.
  4. En Plantilla de instancias, selecciona la plantilla nueva que quieres usar en este grupo.
  5. Haz clic en Guardar para aplicar la plantilla nueva.

gcloud

Para usar el método set-instance-template a fin de actualizar una plantilla, pasa la plantilla nueva al subcomando instance-groups managed set-instance-template:

gcloud compute instance-groups managed set-instance-template instance-group-name \
    --template instance-template \
    --zone zone

API

Crea una solicitud para el servicio instanceGroupManagers con el nombre del grupo de instancias administrado de destino. Incluye la URL de la plantilla de instancias nueva en el cuerpo de la solicitud:

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/setInstanceTemplate

{
 "instanceTemplate": "global/instanceTemplates/instance-template
}

Una vez que cambies la plantilla de instancias, vuelve a crear las instancias individuales o actualiza todas las VM del grupo con una actualización progresiva.

Cambia el tamaño de un grupo de instancias administrado

Para agregar o quitar VM en un MIG, puedes hacer lo siguiente:

Cambia el tamaño de un MIG de forma automática

Puedes configurar los grupos de instancias administrados para que agreguen o quiten VM de forma automática en función de las cargas de trabajo. Las aplicaciones pueden manejar sin problemas los aumentos de tráfico, y puedes reducir los costos cuando se necesiten menos recursos de procesamiento. Para comenzar a escalar los grupos de instancias administrados, consulta Aplica el ajuste de escala automático en grupos de instancias.

Configura el tamaño de los MIG de forma manual

Si un grupo de instancias administrado aún no se configuró para que escale de forma automática, puedes cambiar el tamaño del grupo manualmente para cambiar la cantidad de instancias. Si aumentas el tamaño, el grupo de instancias administrado usa la plantilla de instancias actual para agregar instancias nuevas. Si disminuyes el tamaño, el grupo de instancias administrado borra las VM. El grupo borra las instancias con una currentAction de DELETING, CREATING y RECREATING antes de borrar las instancias en ejecución sin acciones programadas.

Si el grupo forma parte de un servicio de backend en el que el vaciado de conexiones está habilitado, pueden transcurrir hasta 60 segundos más después de que se complete el vaciado de conexiones hasta que se quite o se borre la instancia de VM.

Puedes cambiar el tamaño de un grupo de instancias administrado mediante Google Cloud Console, la herramienta de gcloud compute o la API.

Console

  1. En Cloud Console, 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 donde quieres cambiar el tamaño.
  3. Haz clic en Editar grupo para modificar este grupo de instancias administrado.
  4. En Cantidad de instancias, especifica la cantidad que quieres incluir en el grupo de instancias administrado. Si el ajuste de escala automático está habilitado, el grupo agrega o quita instancias de forma automática, según sea necesario. Sin embargo, puedes cambiar los valores en Cantidad mínima de instancias y Cantidad máxima de instancias para ajustar de forma indirecta el tamaño del grupo mediante el escalador automático.
  5. Haz clic en Guardar para aplicar la plantilla nueva.

gcloud

Usa el subcomando resize.

gcloud compute instance-groups managed resize instance-group-name \
    --size new-size \
    --zone zone

API

Realiza una solicitud al método resize. Especifica el tamaño del grupo de instancias nuevo como parámetro.

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/resize?size=new-size

Si el grupo de instancias es regional, reemplaza zones/zone por regions/region.

Luego de que realizas una solicitud para cambiar el tamaño de un grupo de instancias administrado, las VM se inician o se detienen en cuanto el sistema puede aprovisionarlas o borrarlas. Este proceso puede tomar un tiempo significativo en función de la cantidad de instancias en el grupo. Verifica el estado de las instancias en el grupo de instancias administrado.

Inhabilita el modo de reintentos de creación durante el cambio de tamaño

De forma predeterminada, si la creación inicial de una instancia de VM falla, el grupo de instancias administrado seguirá intentando crearla hasta tener éxito. Sin embargo, si no deseas este modo de reintentos de creación automático, puedes inhabilitarlo; para ello, configura la marca --nocreation-retries cuando cambies el tamaño del grupo de instancias. En este modo, el grupo de instancias administrado intenta crear todas las instancias solo una vez. Si hay un error durante la creación de una instancia, el grupo de instancias administrado la descarta, la quita de la lista de instancias administradas y disminuye su tamaño de destino.

Este modo solo se aplica durante el primer intento de creación de una VM. Si una VM se crea de forma correcta mientras este modo está habilitado, la VM se comportará de la misma manera que las que se crearon con una solicitud normal de cambio de tamaño. En particular, si una VM en ejecución se cierra de forma inesperada más adelante, y es necesario volver a crearla, este modo no afecta el comportamiento de recreación.

La opción de inhabilitar el modo de reintentos de creación es útil en situaciones en las que los sistemas crean de forma automática grupos de VM que no requieren una cantidad exacta de VM. Es posible que prefieras estabilizar con rapidez el tamaño del grupo de instancias administrado y ser flexible en cuanto a la cantidad de VM del grupo, en lugar de esperar de manera indefinida hasta que se creen todas las instancias solicitadas, lo que podría retrasarse de forma temporal o permanente debido a errores de cuota o a otros problemas no relacionados.

Para cambiar el tamaño de un grupo de instancias administrado con el modo de reintentos de creación inhabilitado, usa la herramienta de gcloud o la API.

gcloud

Usa el subcomando resize con la marca --no-creation-retries.

gcloud beta compute instance-groups managed resize instance-group-name --size new-size \
    --no-creation-retries \
    --zone zone

API

Realiza una solicitud al método resizeAdvanced. Especifica el tamaño del grupo de instancias nuevo y el campo noCreationRetries en el cuerpo de la solicitud.

POST https://compute.googleapis.com/compute/beta/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/resizeAdvanced

{
 "targetSize": size
 "noCreationRetries": true
}

Si el grupo de instancias es regional, reemplaza zones/zone por regions/region.

Puedes ver qué instancias que se están creando y en qué modo mediante el método listManagedInstances. Las instancias que se crean con el modo de reintentos de creación inhabilitado tendrán una currentAction de CREATING_WITHOUT_RETRIES.

Crea instancias con nombres específicos en MIG

Si tienes un sistema que depende de nombres específicos, puedes crear VM con esos nombres. Los nombres que asignas a estas instancias administradas persisten si se vuelve a crear la VM. Consulta Agrega instancias con nombres específicos.

Borra instancias específicas de un grupo

Puedes borrar instancias de VM individuales de un grupo de instancias administrado. Cuando se borran instancias, se reduce el targetSize especificado del grupo de instancias y se quitan las VM de los grupos de destino de los que forman parte.

Borrar instancias de un grupo de instancias administrado no cambia ninguna configuración del escalador automático especificada. Si borras instancias de un grupo, es posible que el escalador automático detecte un aumento en la carga de trabajo en las demás instancias y aumente el tamaño del grupo a su nivel anterior. Para evitarlo, desactiva o borra el escalador automático antes de intentar borrar las instancias.

Si el grupo forma parte de un servicio de backend en el que el vaciado de conexiones está habilitado, pueden transcurrir hasta 60 segundos más después de que se complete el vaciado de conexiones hasta que se quite o se borre la instancia de VM.

Borra instancias de un grupo de instancias administrado mediante Google Cloud Console, la herramienta de gcloud compute o la API.

Console

  1. En Cloud Console, 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 el que quieres borrar las instancias individuales. Se abrirá una página con las propiedades del grupo de instancias y una lista de instancias incluidas en el grupo.
  3. En la lista, selecciona una o más instancias que quieres borrar.
  4. Haz clic en Borrar. Se borran las instancias seleccionadas.

gcloud

Usa el subcomando instance-groups managed delete-instances:

gcloud compute instance-groups managed delete-instances instance-group-name \
    --instances example-i3n2,example-z2x9 \
    --zone zone

API

Realiza una solicitud al método instanceGroupManagers.deleteInstances. En el cuerpo de la solicitud, incluye las URL de una o más instancias que desees borrar.

POST https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/deleteInstances

{
 "instances": [
  "zones/zone/instances/example-instance-i3n2",
  "zones/zone/instances/example-instance-l6n1"
 ]
}

Si el grupo de instancias es regional, reemplaza zones/zone por regions/region.

Después de realizar una solicitud para borrar instancias en un grupo de instancias administrado, las instancias se detienen en cuanto el sistema puede borrarlas. Este proceso puede tardar bastante tiempo en función de la cantidad de instancias que borres del grupo. Verifica el estado de las instancias en el grupo de instancias administrado.

Descarta instancias de un grupo

Puedes separar una instancia de VM de un grupo de instancias administrado para depurar con mayor facilidad los problemas de VM individuales sin afectar al grupo en su totalidad. Cuando se descarta una instancia de un grupo, se quita esa VM de los balanceadores de cargas asignados al grupo de instancias administrado. No se quitan los grupos de destino asignados de forma manual a instancias individuales específicas.

Descartar instancias reduce el targetSize especificado del grupo de instancias, pero no cambia ningún parámetro de configuración del escalador automático. Los grupos de instancias administrados con un escalador automático continúan agregando o borrando VM de forma automática según sea necesario.

Si el grupo forma parte de un servicio de backend en el que el vaciado de conexiones está habilitado, pueden transcurrir hasta 60 segundos más después de que se complete el vaciado de conexiones hasta que se quite o se borre la instancia de VM.

Descarta instancias de un grupo de instancias administrado mediante Google Cloud Console, la herramienta de gcloud compute o la API.

Console

  1. En Cloud Console, 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 del que quieres quitar las instancias. Se abrirá una página con las propiedades del grupo de instancias y una lista de instancias incluidas en el grupo.
  3. En la lista, selecciona una o más instancias que quieres quitar del grupo.
  4. Haz clic en Quitar del grupo. Las instancias seleccionadas abandonan el grupo, pero siguen en ejecución fuera de este.

gcloud

Para quitar una instancia del grupo sin borrarla, usa el subcomando abandon-instances.

gcloud compute instance-groups managed abandon-instances instance-group-name \
    --instances example-i3n2,example-z2x9 \
    --zone zone

API

Realiza una solicitud al método instanceGroupManagers.abandonInstances. En el cuerpo de la solicitud, incluye las URL de una o más instancias que desees descartar.

POST https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/abandonInstances

{
 "instances": [
  "zones/zone/instances/example-instance-i3n2",
  "zones/zone/instances/example-instance-l6n1"
 ]
}

Si el grupo de instancias es regional, reemplaza zones/zone por regions/region.

Después de realizar una solicitud para descartar instancias de un grupo de instancias administrado, se quitan del grupo lo antes posible. Verifica el estado de las instancias en el grupo de instancias administrado.

Vuelve a crear instancias en el grupo

Cuando se vuelve a crear una instancia administrada, se borra la VM especificada y se crea una nueva mediante la plantilla de instancias asignada al grupo de instancias administrado.

Usa este método para actualizar las VM seleccionadas a fin de que usen la plantilla de instancias más reciente. Si necesitas volver a crear todas las VM de un grupo de instancias administrado, inicia una actualización progresiva.

Si el grupo forma parte de un servicio de backend en el que el vaciado de conexiones está habilitado, pueden transcurrir hasta 60 segundos más después de que se complete el vaciado de conexiones hasta que se quite o se borre la instancia de VM.

Vuelve a crear las VM seleccionadas del grupo de instancias administrado mediante la herramienta de gcloud compute o la API.

gcloud

Usa el subcomando instance-groups managed recreate-instances.

gcloud compute instance-groups managed recreate-instances instance-group-name \
    --instances example-i3n2,example-z2x9 \
    --zone zone

API

Realiza una solicitud al método instanceGroupManagers.recreateInstances. En el cuerpo de la solicitud, incluye las URL de una o más instancias que desees volver a crear.

POST https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/recreateInstances

{
 "instances": [
  "zones/zone/instances/example-instance-i3n2",
  "zones/zone/instances/example-instance-l6n1"
 ]
}

Si el grupo de instancias es regional, reemplaza zones/zone por regions/region.

Una vez que realizas una solicitud para volver a crear instancias en un grupo de instancias administrado, las VM nuevas se inician en cuanto el sistema puede aprovisionarlas. Este proceso puede tomar un tiempo significativo en función de la cantidad de instancias que vuelves a crear. Verifica el estado de las instancias en el grupo de instancias administrado.

Borra un grupo de instancias administrado

Cuando borras un grupo de instancias administrado, se borran todas las VM del grupo. Si debes conservar alguna de las VM de este grupo de instancias administrado, primero descarta las instancias para quitar las VM del grupo. Luego, borra el grupo.

Cuando borras un grupo de instancias administrado y sus instancias mediante Google Cloud Console o la herramienta de gcloud compute, todos los escaladores automáticos adjuntos se borran de forma automática. Sin embargo, si usas la API, primero debes emitir solicitudes individuales para borrar cualquier escalador automático adjunto con autoscalers.delete o regionAutoscalers.delete.

Console

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

    Ir a la página Grupos de instancias

  2. Selecciona uno o más grupos de la lista que quieres borrar.
  3. Haz clic en Borrar para borrar el grupo y todas las VM.

gcloud

Usa el subcomando instance-groups managed delete.

gcloud compute instance-groups managed delete instance-group-name \
    --zone zone

API

Realiza una solicitud al método instanceGroupManagers.delete.

DELETE https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name

Si el grupo de instancias es regional, reemplaza zones/zone por regions/region.

Crea grupos de instancias interrumpibles

Puedes usar grupos de instancias administrados para crear con rapidez instancias interrumpibles, lo que puede reducir los costos de las VM de los grupos de instancias administrados. Por ejemplo, puedes crear un grupo de instancias interrumpibles, usarlas para ejecutar una tarea de procesamiento por lotes y, luego, borrar el grupo cuando se complete la tarea.

Para crear un grupo de instancias interrumpibles, configura la opción interrumpible en una plantilla de instancias y, luego, usa la plantilla para crear el grupo de instancias administrado.

Console

  1. En Cloud Console, ve a la página Plantillas de instancias.

    Ir a la página Plantillas de instancias

  2. Haz clic en Plantilla de instancias nueva.
  3. Completa las propiedades que quieres para la plantilla de instancias.
  4. Haz clic en Mostrar opciones avanzadas para expandir la sección Políticas de disponibilidad.
  5. Configura la opción Prioridad en Activado.
  6. Haz clic en Crear para crear la plantilla.
  7. Usa esta plantilla para crear un grupo de instancias administrado.

gcloud

En gcloud compute, crea una plantilla de instancias con el comando instance-templates create. Incluye la marca --preemptible.

gcloud compute instance-templates create instance-template \
    --preemptible

Luego de crear la plantilla de instancias, úsala para crear un grupo de instancias administrado.

API

Usa el método instanceTemplates().insert para crear una plantilla de instancias nueva. Incluye la propiedad preemptible en scheduling y configúrala como true.

{
"name": "instance-template",
"properties": {
  "machineType": "zones/zone/machineTypes/machine-type",
  "networkInterfaces": [
    {
      "network": "global/networks/default",
      "accessConfigs":
      [
        {
          "name": "external-IP",
          "type": "ONE_TO_ONE_NAT"
        }
      ]
    }
  ],
  "scheduling":
  {
    "preemptible": true
  },
  "disks":
  [
    {
      "type": "PERSISTENT",
      "boot": true,
      "mode": "READ_WRITE",
      "initializeParams":
      {
        "sourceImage": "projects/debian-cloud/global/images/family/debian-9"
      }
    }
  ]
  }
}

Luego de crear la plantilla de instancias, úsala para crear un grupo de instancias administrado.

Comprende los campos instanceTemplate y versions

Cuando creas un grupo de instancias administrado, proporcionas una plantilla de instancias que el grupo usa para crear instancias de VM individuales. De forma predeterminada, Compute Engine describe la plantilla de instancias usada en dos propiedades de API separadas: la propiedad instanceTemplate de nivel superior y la propiedad versions. Por ejemplo, en el siguiente grupo de instancias administrado, observa que se propagó información a los campos instanceTemplate y versions:

{

 "name": "example-group",
 "zone": "zones/us-central1-a",
 "instanceTemplate": "global/instanceTemplates/example-it",
 "versions": [
  {
   "name": "v3",
   "instanceTemplate": "global/instanceTemplates/example-it",
   "targetSize": {
    "calculated": 3
   }
  }
 ]...
}

Compute Engine propaga de forma automática el campo de nivel superior instanceTemplate y el campo versions para la retrocompatibilidad. Recomendamos especificar el campo versions y omitir el campo de nivel superior instanceTemplates siempre que sea posible. Sin embargo, si tu código de aplicación establece el campo de nivel superior instanceTemplate, aún es una solicitud válida.

Para obtener más información sobre el actualizador de grupos de instancias administrados, lee cómo implementar actualizaciones en los MIG.

Realiza una prueba canary en plantillas de instancias con un grupo de instancias administrado (avanzado)

Es posible crear un grupo de instancias administrado donde haya dos grupos de VM que usan plantillas de instancias diferentes. Por ejemplo, es posible que quieras crear un grupo de instancias administrado que tenga 20 instancias de VM, y 10 VM deben ejecutarse en una imagen operativa específica, mientras que el resto se ejecuta en una imagen de sistema operativo diferente. Esta función te permite comparar las dos versiones diferentes de la plantilla de instancias antes de decidirte por una.

En la API, realiza una solicitud POST a la siguiente URL:

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers

En el cuerpo de la solicitud, se debe omitir el campo de nivel superior instanceTemplates, pero se debe incluir la propiedad versions con dos plantillas de instancias configuradas. En cada objeto versions, debes especificar una plantilla de instancias. También debes especificar el targetSize para uno de los objetos versions, pero no para ambos. Por ejemplo, la siguiente solicitud crea un grupo de instancias en el que el 50% de las instancias de VM usa la plantilla de instancias example-template y el resto usa la plantilla small-machine-type:

{
  "baseInstanceName": "example-instances",
  "name": "example-group",
  "targetSize": 5,
  "versions":
  [
    {
      "instanceTemplate": "global/instanceTemplates/example-template",
      "targetSize":
      {
        "percent": 50
      }
    },
   {
     "instanceTemplate": "global/instanceTemplates/small-machine-type"
   }
  ]
}

IAM y los grupos de instancias administrados

Todas las operaciones que realiza Compute Engine como parte de un grupo de instancias administrado se llevan a cabo con la cuenta de servicio de las API de Google del proyecto. Esta cuenta de servicio por proyecto tiene una dirección de correo electrónico como la siguiente, en la que project-id es el ID numérico del proyecto correspondiente:

project-id@cloudservices.gserviceaccount.com

La cuenta de servicio de las API de Google es diferente a la cuenta de servicio predeterminada de Compute Engine.

Debes asegurarte de que la cuenta de servicio que usa el grupo de instancias administrado tenga privilegios suficientes para crear recursos en función de la plantilla de instancias. En particular, esto significa que la cuenta de servicio debe tener la función compute.instanceAdmin.v1 y, de forma opcional, serviceAccountUser para crear y administrar las VM del grupo de instancias. La función serviceAccountUser solo es obligatoria si el grupo de instancias administrado creará VM que se puedan ejecutar como cuentas de servicio. Ten en cuenta que otros procesos, incluido Deployment Manager, también usan esta cuenta.

Cuando creas un grupo de instancias administrado o actualizas una plantilla de instancias, Compute Engine valida que la cuenta de servicio de las API de Google tenga lo siguiente:

  • La función serviceAccountUser, que es importante si planeas crear instancias que puedan ejecutarse como cuenta de servicio
  • Permisos para todos los recursos a los que se hace referencia en las plantillas de instancias, como imágenes, discos, redes de VPC y subredes

Para obtener más información sobre las cuentas de servicio, consulta la descripción general del tema.

Actualiza todas las instancias en un grupo de instancias administrado

Consulta cómo implementar actualizaciones para MIG.

Soluciona problemas

El grupo de instancias administrado aún no puede crear una VM. ¿A qué se debe?

Existen varios problemas que pueden impedir que el grupo de instancias cree o vuelva a crear una instancia de VM de manera correcta. Estos son algunos problemas comunes:

  • El grupo de instancias administrado intenta crear o volver a crear la instancia y el disco persistente de arranque, pero el disco persistente ya existe. De forma predeterminada, se crean nuevos discos persistentes de arranque cuando se crean instancias nuevas. Estos discos llevan el nombre de la VM. Si una VM tiene el nombre my-awesome-instance, el disco también se llama my-awesome-instance. Si ya existe un disco persistente con ese nombre, la solicitud falla. Borra el disco persistente existente para resolver este problema.

  • La plantilla de instancias configuró la opción disks.autoDelete como false en los discos persistentes de arranque, de modo que cuando se borró una VM (por ejemplo, debido a la reparación automática), el disco persistente no se borró. Cuando el grupo de instancias administrado intentó volver a crear la VM con el mismo nombre, se produjo el problema de que ya existe un disco persistente con ese nombre. Borra el disco persistente existente a fin de solucionar el problema inmediato y actualiza la plantilla de instancias para establecer disks.autoDelete como true, si deseas que los discos persistentes de arranque se borren junto con la instancia.

  • La plantilla de instancias podría no ser válida. Si actualizaste la plantilla de instancias hace poco, podría haber una propiedad no válida que provoque que el grupo de instancias administrado falle en la creación de la VM. A continuación, se detallan propiedades que podrían no ser válidas:

    • Especificaste un recurso que no existe, como una imagen de origen.
    • Escribiste mal el nombre de un recurso.
    • Intentaste conectar discos persistentes adicionales que no son de arranque en modo de lectura y escritura. Debido a que los grupos de instancias contienen varias VM, los discos adicionales que quieras compartir entre todas las VM se pueden conectar en modo de solo lectura.
  • Si configuraste una política de reparación automática, pero no configuraste (o configuraste de manera incorrecta) la regla de firewall que permite que los sondeos de las verificaciones de estado lleguen a la aplicación, las VM parecerán estar en mal estado, y el MIG intentará volver a crearlas de forma continua. Para obtener información sobre cómo configurar una regla de firewall de verificación de estado, consulta esta configuración de verificación de estado de ejemplo.

Próximos pasos