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 Platform Console, ve a la página de 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 los MIG zonales, llama al método instanceGroupManagers.list:

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

Para los MIG regionales, llama al método 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 valor id del grupo, debes usar la herramienta de gcloud o la API de Compute Engine.

Console

  1. En Google Cloud Platform Console, ve a la página de 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.

  3. Haz clic en Detalles para ver la configuración del 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.

Usa la marca --format para limitar el resultado. Por ejemplo, el siguiente comando solo muestra la configuración del escalador automático del grupo si es que existe.

gcloud compute instance-groups managed describe instance-group --format="(autoscaler)"

API

Para el MIG zonal, llama al método instanceGroupManagers.get. Para los MIG regionales, llama al método regionInstanceGroupManagers.get.

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

La respuesta incluye detalles sobre el grupo, incluidas las políticas adjuntas, excepto la política de ajuste de escala automático del grupo. Aunque el ajuste de escala automático es una característica de los MIG, es un recurso diferente de la API.

Política de ajuste de escala automático

Si un escalador automático está adjunto al grupo, el recurso de escalador automático aparece en el campo status.autoscaler del grupo.

Para obtener información sobre ese escalador automático, llama al método autoscalers.get para un MIG zonal, o al método regionAutoscalers.get para un MIG regional. La URL del recurso de escalador automático incluye su nombre, que, de forma predeterminada, es el nombre del grupo al que está adjunto el escalador automático. Por ejemplo, puedes realizar la siguiente solicitud para el escalador automático de un MIG regional:

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

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 verificar que todas las instancias en un grupo de instancias administrado estén en ejecución y en buen estado, comprueba el valor del campo status.isStable del grupo.

gcloud

Usa el comando describe:

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

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

Para pausar una secuencia de comandos hasta que el MIG 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 MIG.

API

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

GET 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:

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

La API de Compute Engine muestra información detallada sobre el MIG, incluido su campo status.isStable.

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

status.isStable establecido en true indica lo siguiente:

  • Ninguna de las instancias del MIG 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 MIG.
  • No se modifica el MIG en sí.

Recuerda que la estabilidad de un MIG depende de muchos factores, puesto que un MIG se puede 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 MIG.
  • Un escalador automático solicita cambiar el tamaño del MIG.
  • Un recurso de reparación automática reemplaza una o más instancias en mal estado en el MIG.
  • En un MIG 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 MIG.

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 Platform Console, ve a la página de 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, incluidos 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.

Usa la herramienta de línea de comandos de gcloud o la API de Compute Engine para ver detalles sobre las instancias en un grupo de instancias administrado. Los detalles incluyen el estado de la instancia y las acciones actuales que realiza el grupo en sus instancias.

gcloud

Todas las instancias administradas

Para verificar el estado y las acciones actuales en todas las instancias del grupo, usa el comando list-instances.

gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \
    [--zone=ZONE | --region=REGION]

El comando muestra una lista de instancias del grupo, incluidos su estado, acciones actuales y otros detalles:

NAME               ZONE           STATUS   HEALTH_STATE  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

La columna HEALTH_STATE aparece vacía, a menos que hayas configurado la verificación de estado.

Una instancia administrada específica

Para verificar el estado y la acción actual de una instancia específica del grupo, usa el comando describe-instance.

gcloud compute instance-groups managed describe-instance INSTANCE_GROUP_NAME \
    --name INSTANCE_NAME \
    [--zone=ZONE | --region=REGION]

El comando muestra detalles sobre la instancia, incluidos su estado, acción actual y, para los MIG con estado, el estado preservado:

currentAction: NONE
id: '6789072894767812345'
instance: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-mig-hz41
instanceStatus: RUNNING
name: example-mig-hz41
preservedStateFromConfig:
  metadata:
    example-key: example-value
preservedStateFromPolicy:
  disks:
    persistent-disk-0:
      autoDelete: NEVER
      mode: READ_WRITE
      source: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/disks/example-mig-hz41
version:
  instanceTemplate: https://www.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates/example-template

API

Llama al método listManagedInstances en un recurso de MIG regional o zonal. Por ejemplo, para ver detalles sobre las instancias en un recurso de MIG zonal, puedes realizar la siguiente solicitud:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/listManagedInstances

La llamada muestra una lista de instancias para el MIG, incluidos los valores de instanceStatus y currentAction de cada instancia.

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

Para ver una lista de los valores de campo instanceStatus válidos, consulta la sección Ciclo de vida de las instancias de VM.

Si una instancia experimenta algún tipo de cambio, el grupo de instancias administrado establece el campo currentAction de la instancia como una de las siguientes acciones para ayudarte a realizar un seguimiento del progreso del cambio. De lo contrario, el campo currentAction se configura como NONE.

Los valores posibles de currentAction son los siguientes:

  • ABANDONING. La instancia se está quitando del MIG.
  • 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 MIG no intenta reemplazar la instancia de nuevo.
  • DELETING: La instancia está en proceso de borrado.
  • 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 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 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://compute.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://compute.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 la documentación sobre cómo ver 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.

¿Qué sigue?