Crea grupos de instancias administrados

Un grupo de instancias administrado (MIG) contiene instancias idénticas que se basan en una plantilla de instancias. Los MIG mantienen la alta disponibilidad de las aplicaciones, ya que sus instancias están disponibles de forma proactiva, es decir, en el estado RUNNING.

Los grupos de instancias administrados admiten la reparación automática, el balanceo de cargas, el ajuste de escala automático y la actualización automática.

Puedes crear MIG zonales (de zona única) y MIG regionales (de múltiples zonas). Los MIG regionales ofrecen una mayor disponibilidad, ya que las instancias están distribuidas entre varias zonas dentro de la misma región.

Para obtener más información sobre los grupos de instancias, lee la descripción general Grupos de instancias.

Antes de comenzar

Limitaciones

  • Cada grupo de instancias administrado puede contener hasta 1,000 instancias de máquina virtual (VM).
  • Cuando se actualiza un grupo de instancias administrado, no se pueden especificar más de 1,000 instancias en una única solicitud.

Usa grupos de instancias administrados para apps sin estado

Los grupos de instancias administrados admiten apps sin estado que no dependen del estado específico de las instancias de VM subyacentes para ejecutarse. Esto habilita funciones como el ajuste de escala automático y la reparación automática, en las que el grupo de instancias administrado puede borrar y volver a crear instancias de forma automática. Además, si se borra una instancia en un grupo de instancias administrado debido a la acción de un usuario, como parte de la reparación automática, o debido a que se realizó el mantenimiento de infraestructura cuando la instancia no estaba establecida como migrar en vivo, este grupo volverá a crear la instancia de forma automática con un nuevo disco persistente raíz.

Debido al carácter sin estado de los grupos de instancias administrados, debes diseñar o actualizar la app para que no dependa de propiedades de instancia específicas que no sean persistentes, como una dirección IP o los datos en la memoria. Del mismo modo, el comportamiento predeterminado para los discos persistentes de arranque consiste en borrarlos cuando se borra la instancia de VM correspondiente, por lo que no debes depender de los discos de arranque como datos persistentes en un grupo de instancias administrado.

Para conservar tus datos, Google recomienda que actualices con regularidad las imágenes de SO, uses secuencias de comandos de inicio y crees copias 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 y secuencias de comandos de inicio relevantes, de forma que, cuando se vuelva a crear una instancia, esta tenga instaladas las apps necesarias y cuente con acceso a los datos obligatorios. Para obtener más recomendaciones sobre la creación de plantillas de instancias, consulta Plantillas de instancia deterministas.

Para guardar los discos asociados con los grupos de instancias administrados, inhabilita la opción disks.autoDelete a fin de evitar que se borren los discos persistentes. Si se borra la instancia que usa el disco (por ejemplo, si el escalador automático reduce el grupo o si borras la instancia de forma manual), debes limpiar manualmente los discos restantes, si así lo deseas.

Crea un grupo de instancias administrado

Antes de crear un grupo de instancias administrado, debes crear una plantilla de instancias a fin de especificar la imagen de sistema operativo o de contenedor y la configuración para cada instancia en el 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 grupo de instancias administrado y selecciona la zona en la que quieres ubicar el grupo.
  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, habilita el Ajuste de escala automático a fin de que el grupo agregue o quite instancias de forma automática en función de su uso o habilita la Reparación automática para realizar verificaciones de estado basadas en aplicaciones en las instancias dentro del grupo.
  7. Haz clic en Crear para 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 lo siguiente:

  • instance-group-name es el nombre de este grupo de instancias.
  • base-name es el nombre que se usará para las instancias creadas en este grupo. Dado que estas instancias son idénticas, se les asigna una string aleatoria como parte del nombre. El nombre base se antepone a esta string aleatoria. Por ejemplo, si el nombre base era example, las instancias tendrán nombres como example-yahs y example-qtyz. Si necesitas nombres específicos, consulta Crea grupos de instancias administrados.
  • size es el tamaño del grupo de instancias.
  • instance-template es el nombre de la plantilla de instancias que se usará en este grupo.
  • zone es una de las zonas disponibles para Compute Engine.

    Por ejemplo, el siguiente comando crea un grupo de instancias llamado example-group, cuyo nombre de instancia 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 instancias 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 lo siguiente:

  • project-id es el ID del proyecto de la solicitud.
  • zone es la zona de la solicitud.
  • instance-group-name es el nombre de este grupo de instancias.
  • base-name es el nombre que se usará para las instancias creadas en este grupo. Dado que estas instancias son idénticas, se les asigna una string aleatoria como parte del nombre. El nombre base se antepone a esta string aleatoria. Por ejemplo, si el nombre base era example, las instancias tendrán nombres como example-yahs y example-qtyz.
  • size es 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. El grupo de instancias administrado utiliza la plantilla nueva cuando realizas una solicitud para agregar o volver a crear instancias, pero la plantilla no actualiza el grupo existente de forma automática. Esto te permite controlar con exactitud qué instancias están actualizadas, pero hace que el grupo tenga instancias 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
}

Luego de cambiar la plantilla de instancias, vuelve a crear las instancias individuales o actualiza todas las instancias en el grupo con una actualización progresiva.

Cambia el tamaño de un grupo de instancias administrado

Para agregar instancias a un MIG o borrarlas de este, tienes las siguientes opciones:

Cambia de forma automática el tamaño de un grupo de instancias administrado

Puedes configurar grupos de instancias administrados para agregar o quitar de forma automática instancias en función de las cargas de trabajo. Las aplicaciones pueden manejar fácilmente 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 el Ajuste de escala automático de grupos de instancias.

Establece manualmente el tamaño de un grupo de instancias administrado

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 borra las instancias. El grupo borra las instancias con un 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 que tenga habilitado el desvío de conexión, pueden transcurrir hasta 60 segundos después del desvío de conexión hasta que se quite o 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 de la instancia nueva 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 un grupo de instancias administrado regional, reemplaza zones/zone por regions/region.

Después de realizar una solicitud para cambiar el tamaño de un grupo de instancias administrado, las instancias se inician o se detienen en cuanto el sistema puede aprovisionarlas o borrarlas. Este proceso puede tardar una cantidad de tiempo significativa dependiendo 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 falla la creación inicial de una instancia de máquina virtual, el grupo de instancias administrado intenta de manera continua crear cada instancia, hasta que esta se cree correctamente. Sin embargo, si no deseas realizar reintentos de creación automáticos, puedes inhabilitar el modo de reintento de creación mediante el uso de la marca --nocreation-retries durante el cambio de 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, el grupo de instancias administrado no creará esta instancia y, en cambio, disminuirá el tamaño de destino del grupo.

Este modo solo se aplica durante el primer intento de creación de una instancia. Si una instancia se crea con éxito mientras este modo se encuentra habilitado, la instancia se comporta de la misma manera que todas las demás instancias creadas con una solicitud regular de cambio de tamaño. En particular, si una instancia en ejecución se cierra más adelante de forma inesperada y es necesario volver a crearla, este modo no afecta el comportamiento de recreación en esa situación.

El modo de reintento de creación inhabilitado es útil en situaciones en las que los sistemas crean de forma automática grupos de instancias en los que no se requiere una cantidad exacta de instancias. Es posible que prefieras estabilizar con rapidez el tamaño del grupo de instancias administrado y ser flexible en la cantidad de instancias que este contiene, en lugar de esperar indefinidamente hasta que se creen todas las instancias solicitadas, lo que puede retrasarse de forma temporal o permanente por errores de cuota o problemas de otra índole.

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 compute 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 \
    --nocreation-retries \
    --zone zone

API

Realiza una solicitud al método resizeAdvanced. Especifica el nuevo tamaño de instancia 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 un grupo de instancias administrado regional, reemplaza zones/zone por regions/region.

Puedes ver qué instancias que se están creando y en qué modo con 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 (Beta)

Si tu sistema depende de nombres específicos, puedes crear instancias con esos nombres. Los nombres que les asignes a estas instancias administradas persisten si se las recrea. Consulta la sección sobre cómo agregar instancias con nombres específicos.

Borra instancias específicas de un grupo

Puedes borrar instancias individuales en un grupo de instancias administrado. Borrar instancias reduce el targetSize especificado del grupo de instancias y quita las instancias de los grupos de destino de los que forman parte.

La eliminación de 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 que tenga habilitado el desvío de conexión, pueden transcurrir hasta 60 segundos después del desvío de conexión hasta que se quite o 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 un grupo de instancias administrado 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 un grupo de instancias administrado para depurar de forma más sencilla los problemas con instancias individuales sin afectar al grupo completo. Descartar una instancia de un grupo también la quita de los balanceadores de cargas que se asignaron 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 instancias de forma automática según sea necesario.

Si el grupo forma parte de un servicio de backend que tenga habilitado el desvío de conexión, pueden transcurrir hasta 60 segundos después del desvío de conexión hasta que se quite o 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 un grupo de instancias administrado 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

Si se vuelven a crear instancias, se borran las instancias especificadas y se crean nuevas con la plantilla asignada al grupo de instancias administrado.

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

Si el grupo forma parte de un servicio de backend que tenga habilitado el desvío de conexión, pueden transcurrir hasta 60 segundos después del desvío de conexión hasta que se quite o borre la instancia de VM.

Vuelve a crear las instancias seleccionadas en el grupo de instancias administrado con 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 un grupo de instancias administrado regional, reemplaza zones/zone por regions/region.

Después de realizar una solicitud para volver a crear instancias en un grupo de instancias administrado, las instancias nuevas se inician en cuanto el sistema puede aprovisionarlas. Este proceso puede tardar una cantidad de tiempo significativa dependiendo 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 instancias en él. Si debes conservar alguna de las instancias en este grupo de instancias administrado, primero descarta las instancias para quitarlas 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 instancias en el grupo de instancias administrado.

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 un grupo de instancias administrado regional, reemplaza zones/zone por regions/region.

Crea grupos de instancias interrumpibles

Puedes usar grupos de instancias administrados para crear varias instancias interrumpibles con rapidez, que pueden reducir los costos de las instancias en 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/beta/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.

Es tu responsabilidad asegurarte de que la cuenta de servicio que usa el grupo de instancias administrado tenga suficientes privilegios para crear instancias de máquina virtual basadas en la plantilla de instancias. En particular, esto significa que a la cuenta de servicio se le debe otorgar la función compute.instanceAdmin.v1 y, de forma opcional, la función serviceAccountUser, para crear y administrar instancias en el grupo. La función serviceAccountUser solo se requiere si el grupo de instancias administrado crea instancias que se puedan ejecutar como una cuenta de servicio. Ten en cuenta que otros procesos, incluido Deployment Manager, 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.

Solución de problemas

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

Hay varios problemas que pueden evitar que el grupo de instancias cree o vuelva a crear una instancia de forma correcta. Estos son algunos problemas comunes:

  • El grupo de instancias administrado está intentando crear o volver a crear la instancia y el disco persistente de inicio, pero el disco persistente ya existe. De forma predeterminada, se crean discos persistentes de inicio nuevos cuando se crean instancias nuevas. Estos discos tienen el mismo nombre que la instancia. Si una instancia 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 para los discos persistentes de arranque, de modo que el disco persistente no se borre cuando se borre una instancia (por ejemplo, debido a la reparación automática). Cuando el grupo de instancias administrado intentó volver a crear la instancia con el mismo nombre, se produjo el mismo problema de que ya existe un disco persistente con el mismo 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 recientemente, podría haber una propiedad no válida que genere que el grupo de instancias administrado falle en la creación de instancias. 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 inicio en modo lectura-escritura. Como los grupos de instancias contienen varias instancias, cualquier disco adicional que desees compartir entre todas las instancias del grupo solo se puede conectar en modo de solo lectura.

Próximos pasos

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Compute Engine