Obtén información sobre los MIG y las instancias administradas

Usa los métodos de esta página para obtener información sobre los grupos de instancias administrados (MIG) y las instancias de máquina virtual (VM) dentro de cada MIG.

Antes de comenzar

Obtén información sobre los MIG

Puedes recuperar información sobre los grupos en sí, por ejemplo, para inspeccionar las políticas adjuntas al grupo y verificar si el grupo es estable o si está experimentando cambios. Para obtener información sobre las instancias de VM dentro de un MIG, consulta la página sobre cómo obtener información sobre las instancias administradas.

Genera una lista de MIG

Para obtener una lista de tus grupos de instancias administrados, usa Console, la herramienta de gcloud o la API.

Console

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

    Ir a la página Grupos de instancias.

    Si tienes grupos de instancias existentes, la página genera una lista de esos grupos, incluidos los grupos de instancias administrados y los grupos de instancias no administrados.

    Los grupos de instancias administrados tienen un valor en la columna Plantilla.

gcloud

Genera una lista de todos los grupos de instancias administrados dentro de un proyecto:

gcloud compute instance-groups managed list

API

Para generar una lista de todos los grupos de instancias administrados dentro de una zona, crea una solicitud GET para el método instanceGroupManagers.list:

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

Para los grupos de instancias administrados regionales (de múltiples zonas), usa el recurso regionInstanceGroupManagers en su lugar: regionInstanceGroupManagers.list.

GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers

Obtén las propiedades de un MIG

Para obtener información sobre un MIG específico, incluidas las políticas adjuntas (por ejemplo, políticas de reparación automática), usa Console, la herramienta de gcloud o la API.

Para obtener el id del grupo, debes usar la herramienta de gcloud o la API.

Console

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

    Ir a la página Grupos de instancias.

    En la página, se detallan los grupos de instancias que tengas. También se muestra una lista de los grupos de instancias no administrados.

  2. En la columna Nombre de la lista, haz clic en el nombre del grupo de instancias que quieres examinar. Se abrirá una página con las propiedades del grupo de instancias y una lista de instancias incluidas en el grupo.

gcloud

Para obtener información sobre un grupo específico, ejecuta el siguiente comando:

gcloud compute instance-groups managed describe instance-group \
    [--zone zone | --region region]

El comando muestra detalles sobre el grupo, incluidas las políticas adjuntas.

API

A fin de obtener información sobre un grupo específico, crea una solicitud GET para el método instanceGroupManagers.get, en la que debes incluir el nombre de un grupo de instancias administrado específico:

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

Para los grupos de instancias administrados regionales (de varias zonas), usa el recurso regionInstanceGroupManagers en su lugar: regionInstanceGroupManagers.list y regionInstanceGroupManagers.get.

GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/instance-group

La respuesta muestra detalles sobre el grupo, incluidas las políticas adjuntas, pero no muestra las políticas de ajuste de escala automático.

A fin de obtener información sobre los escaladores automáticos, crea una solicitud GET para el método autoscalers.get y especifica el nombre de un grupo de instancias administrado específico:

GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/autoscalers/instance-group

Para grupos de instancias administrados regionales (de múltiples zonas), usa el recurso regionAutoscalers en su lugar: regionAutoscalers.get.

GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/regionAutoscalers/instance-group

Verifica si un MIG es estable

Varios comandos y solicitudes crean, borran y modifican instancias en un grupo de instancias administrado. Esas operaciones se muestran como DONE después de que el grupo programó acciones para crear, borrar o actualizar esas instancias. Sin embargo, esto no significa que se crearon, borraron o actualizaron las instancias hasta que se completen esas acciones subyacentes. Debes verificar el estado del grupo o, de forma alternativa, verificar el estado de esas instancias.

Un grupo de instancias administrado es estable cuando ninguna de las instancias que lo conforman experimenta cambios, no hay cambios programados para esas instancias en el futuro y el grupo en sí no se está modificando.

Es posible que necesites saber si el grupo es estable en caso de que tengas dependencias que requieran que todas las instancias del grupo estén en buen estado y activas. Por ejemplo, se recomienda comenzar a programar trabajos, enviar tráfico o asignar rangos de claves después de recibir la confirmación de que todas las VM están en ejecución y en buen estado.

Para comprobar si un grupo de instancias administrado está en ejecución y en buen estado, verifica el valor del campo status.isStable.

gcloud

Usa el comando describe del grupo de instancias:

gcloud compute instance-groups managed describe instance-group-name \
    [--zone zone | --region region]

La herramienta de gcloud muestra información detallada sobre el grupo de instancias, incluido el campo status.isStable.

Para pausar una secuencia de comandos hasta que el grupo se encuentre estable, usa el comando wait-until con la marca --stable. Por ejemplo:

gcloud compute instance-groups managed wait-until instance-group-name \
    --stable \
    [--zone zone | --region region]
Waiting for group to become stable, current operations: deleting: 4
Waiting for group to become stable, current operations: deleting: 4
...
Group is stable

El comando vuelve después de que status.isStable se configura como true para el grupo.

API

Para un MIG zonal, realiza una solicitud POST al método instanceGroupManagers.get:

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

Para un grupo de instancias administrado regional, reemplaza zones/zone por regions/region:

POST https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/instance-group-name/get

La API muestra información detallada sobre el grupo de instancias, incluido el campo status.isStable.

status.isStable configurado como false indica que los cambios están activos, pendientes o que el grupo de instancias administrado se está modificando.

status.isStable configurado como true indica lo siguiente:

  • Ninguna de las instancias del grupo de instancias administrado se somete a ningún tipo de cambio y la currentAction para todas las instancias es NONE.
  • No hay cambios pendientes para las instancias en el grupo de instancias administrado.
  • No se modifica el grupo de instancias administrado en sí.

Los grupos de instancias administrados se pueden modificar de varias maneras. Por ejemplo:

  • Realizas una solicitud para implementar una plantilla de instancias nueva.
  • Realizas una solicitud para crear, borrar, cambiar el tamaño o actualizar las instancias en el grupo.
  • Un escalador automático solicita cambiar el tamaño del grupo.
  • Un recurso de reparación automática reemplaza una o más instancias en mal estado en el grupo de instancias administrado.
  • En un grupo de instancias administrado regional, se redistribuyen algunas de las instancias.

Cuando todas las acciones se completan, el valor status.isStable se vuelve a configurar como true para ese grupo de instancias administrado.

Para instancias de VM individuales, consulta la sección sobre cómo verificar el estado de las instancias administradas.

Visualiza el historial de operaciones de reparación automática

Si configuraste la reparación automática, puedes ver eventos de reparación automática anteriores.

Supervisa las actualizaciones progresivas

Si iniciaste una actualización progresiva y quieres saber cuándo se completará, consulta Supervisa las actualizaciones.

Visualiza la configuración con estado

Si configuraste un MIG con estado y deseas revisar la configuración, consulta Visualiza la configuración con estado.

Obtén información sobre las instancias de VM administradas dentro de un MIG

Genera una lista de las instancias administradas de un MIG

Para obtener una lista de las instancias administradas en un grupo, incluidos sus estados y plantillas, usa Console, la herramienta de gcloud o la API.

Console

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

    Ir a la página Grupos de instancias.

    En la página, se detallan los grupos de instancias que tengas. También se muestra una lista de los grupos de instancias no administrados.

  2. En la columna Nombre de la lista, haz clic en el nombre del grupo de instancias que quieres examinar. Se abrirá una página con las propiedades del grupo de instancias y una lista de instancias incluidas en el grupo.

gcloud

Usa el subcomando list-instances de la herramienta de gcloud.

gcloud compute instance-groups managed list-instances instance-group \
    [--zone zone | --region region]

El comando muestra una lista de instancias con sus detalles, incluido su estado actual, plantilla de instancias y último error.

API

Para un MIG zonal, haz una solicitud GET al método instanceGroupManagers.listManagedInstances y especifica el nombre de un grupo de instancias administrado específico:

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

Para los grupos de instancias administrados regionales (de varias zonas), usa el recurso regionInstanceGroupManagers en su lugar: regionInstanceGroupManagers.list.

GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/instance-group

La respuesta muestra una lista de instancias con sus detalles, incluido su estado actual y la plantilla de instancias.

Verifica el estado de las instancias administradas

Varios comandos y solicitudes crean, borran y modifican instancias en un grupo de instancias administrado. Esas operaciones se muestran como DONE después de que el grupo programó acciones para crear, borrar o actualizar esas instancias. Sin embargo, esto no significa que se crearon, borraron o actualizaron las instancias hasta que se completen esas acciones subyacentes. Debes verificar el estado de esas instancias o, como alternativa, verificar el estado del grupo.

Puedes ver la currentAction que se está realizando y el status de cada instancia en un grupo de instancias administrado con la herramienta de línea de comandos de gcloud o la API.

gcloud

gcloud compute instance-groups managed list-instances instance-group-name \
[--filter="zone:(zone)" | --filter="region:(region)"]

gcloud muestra una lista de instancias en el grupo de instancias y sus respectivos estados y acciones actuales. Por ejemplo:

NAME               ZONE           STATUS    ACTION    INSTANCE_TEMPLATE  VERSION_NAME  LAST_ERROR
vm-instances-9pk4  us-central1-f            CREATING  my-new-template
vm-instances-h2r1  us-central1-f  STOPPING  DELETING  my-old-template
vm-instances-j1h8  us-central1-f  RUNNING   NONE      my-old-template
vm-instances-ngod  us-central1-f  RUNNING   NONE      my-old-template

API

En la API, realiza una solicitud GET al método regionInstanceGroupManagers.listManagedInstances. Para un grupo de instancias administrado zonal, usa el método instanceGroupManagers.listManagedInstances.

GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/instance-group-name/listManagedInstances

La API muestra una lista de instancias dentro del grupo, incluido el instanceStatus y la currentAction de cada instancia.

{
 "managedInstances": [
  {
   "instance": "https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/vm-instances-prvp",
   "id": "5317605642920955957",
   "instanceStatus": "RUNNING",
   "instanceTemplate": "https://compute.googleapis.com/compute/v1/projects/project-id/global/instanceTemplates/instance-template-name",
   "currentAction": "REFRESHING"
  },
  {
   "instance": "https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/vm-instances-pz5j",
   "currentAction": "DELETING"
  },
  {
   "instance": "https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/vm-instances-w2t5",
   "id": "2800161036826218547",
   "instanceStatus": "RUNNING",
   "instanceTemplate": "https://compute.googleapis.com/compute/v1/projects/project-id/global/instanceTemplates/instance-template-name",
   "currentAction": "REFRESHING"
  }
 ]
}

Para cada instancia en un grupo de instancias administrado, el estado de la instancia se describe mediante su campo instanceStatus. Para ver una lista de los valores del campo instanceStatus válidos, consulta Verifica el estado de una instancia.

Si la instancia experimenta algún tipo de cambio, el campo currentAction se propaga con una de las siguientes acciones para ayudarte a realizar un seguimiento del progreso del cambio. De lo contrario, el campo currentAction es NONE.

Los valores posibles de currentAction son los siguientes:

  • ABANDONING: la instancia se está quitando del grupo de instancias administrado.
  • CREATING: la instancia está en proceso de creación.
  • CREATING_WITHOUT_RETRIES: la instancia se está creando sin reintentos; si la instancia no se crea en el primer intento, el grupo de instancias administrado no intenta volver a reemplazar la instancia.
  • DELETING: La instancia está en proceso de eliminación.
  • RECREATING: La instancia se está reemplazando.
  • REFRESHING: La instancia se está quitando de sus grupos de destino actuales y se está agregando de nuevo a la lista de grupos de destino actuales (esta lista puede ser igual o diferente a la de los grupos de destino existentes).
  • RESTARTING. la instancia está en proceso de reinicio con los métodos stop y start.
  • VERIFYING: la instancia se creó y está en proceso de verificación.
  • NONE: no hay ninguna acción en ejecución en la instancia.

Para verificar si el grupo en su totalidad es estable o si está experimentando cambios, consulta la sección sobre cómo comprobar el estado del grupo.

Verifica los estados

Si configuraste la reparación automática para el grupo de instancias administrado, puedes revisar el estado de cada VM. ConsultaVerifica el estado.

Enumera los errores de las instancias

Si tus instancias administradas experimentaron errores, puedes verlos para diagnosticar y mitigar la causa.

Usa Google Cloud Console, la herramienta de gcloud o la API de Compute Engine para enumerar los errores.

Console

  1. En Google Cloud Platform Console, ve a la página de 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 quieres examinar. Se abrirá una página con las propiedades del grupo de instancias y una lista de instancias incluidas en el grupo.

  3. Haz clic en Errores.

gcloud

Usa el comando instance-groups managed list-errors para enumerar los errores más recientes del grupo.

gcloud compute instance-groups managed list-errors instance-group-name 
[--zone zone | --region region]

Por ejemplo:

gcloud compute instance-groups managed list-errors example-group \
    --region us-west1
INSTANCE_URL                                                                                        ACTION    ERROR_CODE      ERROR_MESSAGE                                                                                     TIMESTAMP                      INSTANCE_TEMPLATE                                                                                                            VERSION_NAME

https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/igm-1-v0hl  CREATING  QUOTA_EXCEEDED  Instance 'igm-1-v0hl' creation failed: Quota 'CPUS' exceeded.  Limit: 1.0 in zone us-central1-a.  2019-07-11T07:44:40.156-07:00  https://www.googleapis.com/compute/v1/projects/my-project/global/instanceTemplates/instance-template-1
https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/igm-1-qp3d  CREATING  QUOTA_EXCEEDED  Instance 'igm-1-qp3d' creation failed: Quota 'CPUS' exceeded.  Limit: 1.0 in zone us-central1-a.  2019-07-11T07:44:40.081-07:00  https://www.googleapis.com/compute/v1/projects/my-project/global/instanceTemplates/instance-template-1
...

API

Crea una solicitud GET destinada al método listErrors para un grupo de instancias administrado regional o zonal.

Por ejemplo:

GET https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/listErrors&maxResults=100

La solicitud obtiene una respuesta similar a la siguiente:


{
 "items": [
  {
   "error": {
    "code": "QUOTA_EXCEEDED",
    "message": "Instance 'example-mig-m1sz' creation failed: Quota 'CPUS' exceeded.  Limit: 50.0 in zone us-central1-c."
   },
   "timestamp": "2019-01-03T18:47:28.457-08:00",
   "instanceDetails" : {
    "instance": "zones/us-central1-c/instances/example-mig-m1sz",
    "action": "CREATING",
    "version": {
     "name": "example-version-name",
     "instanceTemplate": "global/instanceTemplates/example-template",
    }
   }
  }
 ],
 ...
 "nextPageToken": "Ch0yMDE5LTA3LTI5VDExOjA4OjA2LjYxMi0wNzowMBJ5aHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vY29tcHV0ZS9zdGFnaW5nX2FscGhhL3Byb2plY3RzL215cnpha2VyZXltcy1zdGFnaW5nL3pvbmVzL3VzLWNlbnRyYWwxLWlyMS9pbnN0YW5jZXMvaWdtLTEtcXAzZA=="
}

La API de listErrors admite la paginación de listas. Para obtener la siguiente página de resultados, usa el campo nextPageToken de una respuesta en una solicitud posterior. Por ejemplo: GET https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/listErrors&maxResults=100&nextPageToken=next-page-token reemplaza next-page-token con el token que se obtuvo de la respuesta anterior.

En la lista de errores posibles se incluyen, entre otros, los siguientes ejemplos:

  • No se puede crear una instancia nueva debido a las siguientes condiciones:
    • No hay disponibilidad de capacidad interrumpible.
    • Falta cuota, por ejemplo, para las CPU en una región determinada.
    • Se alcanzó el límite de instancias de VM para la red asociada con el grupo.
    • Se borró la imagen de disco especificada en el campo properties.disks[].initializeParams.sourceImage de la plantilla de instancias, o sus permisos cambiaron.
    • La tarjeta de crédito de la cuenta de facturación asociada con el proyecto rechazó un pago.
  • Una instancia existente no se puede borrar por los siguientes motivos:
    • La cuenta de servicio que usa el grupo no tiene el permiso compute.instances.delete.
    • Se solicitaron demasiadas eliminaciones simultáneas que superan los límites de frecuencia.
  • No se puede agregar una instancia a un grupo de destino porque este se borró.

Después de inspeccionar estos errores, puedes mitigarlos. Por ejemplo:

  • Mueve la carga de trabajo a una zona diferente que tenga capacidad interrumpible.
  • Solicita un aumento de cuota en una región determinada.
  • Agrega el permiso compute.instances.delete a la cuenta de servicio que usa el grupo.

Si falla una acción que se activa mediante un grupo de instancias administrado (por ejemplo, si un escalador automático experimenta un error cuando intenta aumentar el tamaño del grupo), el grupo puede reintentar esa acción de forma inmediata. Si falla la última tentativa de reintento inmediato, el MIG registra el error y puedes verlo si enumeras los errores de la instancia. Después de un tiempo de retirada, el grupo reintentará la acción que falló. Si el error persiste, es posible que se registre varias veces.

Compute Engine conserva los 500 errores más recientes de los últimos 8 días, incluso si las instancias subyacentes ya no existen o no se pudieron crear.

Verifica si una instancia de VM es parte de un MIG

Para comprobar si una VM específica es miembro de un grupo en la actualidad, puedes usar la consola o la API.

Console

  1. En Google Cloud Console, ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Haz clic en una instancia para acceder a los detalles de la instancia de VM.
  3. Si la instancia de VM pertenece a un grupo de instancias administrado, el nombre de ese grupo de instancias administrado aparece bajo el encabezado En uso por. Si la instancia de VM no pertenece a un grupo, el encabezado En uso por no aparece en la página de detalles de la instancia.

API

Consulta Visualiza referencias a instancias de VM.

Como alternativa, para identificar si una VM es o fue miembro de un grupo de instancias administrado, busca estas dos claves de metadatos en los metadatos de la instancia:

  • instance-template indica la plantilla a partir de la que se creó la VM.
  • created-by indica el grupo de instancias administrado que creó la VM.

Incluso si abandonas la instancia, la VM seguirá teniendo estas entradas de metadatos, a menos que las quites de forma manual.

Por ejemplo, si hubiese una VM llamada random-instance-biy y quisieras saber si la creó un grupo de instancias administrado, puedes describir la instancia y buscar las claves de metadatos. Por ejemplo:

gcloud compute instances describe random-instance-biy \
    --zone us-central1-f

La herramienta de gcloud muestra una respuesta similar a la siguiente:

canIpForward: false
cpuPlatform: Intel Ivy Bridge
creationTimestamp: '2016-08-24T14:11:38.012-07:00'
...
metadata:
  items:
  - key: instance-template
    value: projects/123456789012/global/instanceTemplates/example-it
  - key: created-by
    value: projects/123456789012/zones/us-central1-f/instanceGroupManagers/igm-metadata

Visualiza el estado preservado de una instancia administrada

Si configuraste un MIG con estado y deseas visualizar el estado preservado de cada instancia administrada, consulta Visualiza la configuración con estado y el estado preservado.

Próximos pasos