Obtenir des informations sur les MIG et les instances gérées

Les méthodes décrites sur cette page permettent d'obtenir des informations sur vos groupes d'instances gérés (MIG) et sur les instances de machines virtuelles (VM) dans chaque MIG.

Avant de commencer

Obtenir des informations sur les MIG

Vous pouvez récupérer des informations sur les groupes, par exemple, pour inspecter les règles associées à ce groupe et pour vérifier si le groupe est stable ou s'il fait l'objet de modifications. Pour plus d'informations sur les instances de VM dans un MIG, consultez la section Obtenir des informations sur les instances gérées.

Répertorier les MIG

Pour obtenir la liste de vos groupes d'instances gérés, utilisez la console, l'outil gcloud ou l'API.

Console

  1. Dans Google Cloud Console, accédez à la page Groupes d'instances.

    Accéder à la page "Groupes d'instances"

    Cette page répertorie les groupes d'instances dont vous disposez, qu'ils soient gérés ou non gérés.

    Les groupes d'instances gérés sont associés à une valeur dans la colonne Modèle.

gcloud

Pour répertorier tous les groupes d'instances gérés d'un projet, exécutez la commande suivante :

gcloud compute instance-groups managed list

API

Pour répertorier tous les groupes d'instances gérés dans une zone, envoyez une requête GET à la méthode instanceGroupManagers.list :

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

Pour les groupes d'instances gérés régionaux (multizones), utilisez plutôt la ressource regionInstanceGroupManagers : regionInstanceGroupManagers.list.

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

Obtenir les propriétés d'un MIG

Pour obtenir des informations sur un MIG spécifique, y compris les règles associées (par exemple, les règles d'autoréparation), utilisez la console, l'outil gcloud ou l'API.

Pour obtenir la valeur id du groupe, vous devez utiliser l'outil gcloud ou l'API.

Console

  1. Dans Google Cloud Console, accédez à la page Groupes d'instances.

    Accéder à la page "Groupes d'instances"

    Cette page répertorie les groupes d'instances dont vous disposez, ainsi que les groupes d'instances non gérés.

  2. Dans la colonne Nom de la liste, cliquez sur le nom du groupe d'instances que vous souhaitez examiner. La page qui s'ouvre affiche les propriétés du groupe ainsi que la liste des instances qui en font partie.

gcloud

Pour obtenir des informations sur un groupe spécifique, exécutez la commande suivante :

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

La commande renvoie des informations sur le groupe, y compris les règles associées.

API

Pour obtenir des informations sur un groupe spécifique, envoyez une requête GET à la méthode instanceGroupManagers.get en incluant le nom d'un groupe d'instances géré spécifique :

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

Pour les groupes d'instances gérés régionaux (multizones), utilisez plutôt la ressource regionInstanceGroupManagers : regionInstanceGroupManagers.list et regionInstanceGroupManagers.get.

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

La réponse inclut des informations sur le groupe, y compris les règles associées, à l'exception des règles d'autoscaling.

Pour obtenir des informations sur les autoscalers, envoyez une requête GET à la méthode autoscalers.get en incluant le nom d'un groupe d'instances géré spécifique :

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

Pour les groupes d'instances gérés régionaux (multizones), utilisez plutôt la ressource regionAutoscalers : regionAutoscalers.get.

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

Vérifier si un groupe d'instance géré est stable

Plusieurs commandes et requêtes permettent de créer, de supprimer et de modifier les instances d'un groupe géré. Un message DONE est renvoyé lorsque le groupe planifie ces actions pour les instances. Celles-ci ne sont toutefois créées, supprimées ou mises à jour qu'une fois les actions planifiées terminées. Vous devez donc vérifier l'état du groupe ou vérifier l'état de ces instances.

Un groupe d'instances géré est stable lorsqu'aucune de ses instances ne subit de modification, lorsqu'aucune modification ultérieure n'est planifiée pour les instances et lorsque le groupe n'est pas en cours de modification.

Si certaines de vos dépendances requièrent que toutes les instances du groupe soient opérationnelles et diffusent du trafic, vous aurez peut-être besoin de savoir si le groupe est stable. Par exemple, vous pouvez commencer à planifier des tâches, à envoyer du trafic ou à attribuer des plages de clés après avoir vérifié que toutes les VM sont en cours d'exécution et opérationnelles.

Vous pouvez vérifier si un groupe d'instances géré est en cours d'exécution et opérationnel en consultant la valeur du champ status.isStable.

gcloud

Utilisez la commande describe du groupe d'instances :

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

L'outil gcloud renvoie des informations détaillées sur le groupe d'instances, y compris le champ status.isStable.

Pour mettre un script en attente jusqu'à ce que le groupe soit stable, utilisez la commande wait-until avec l'option --stable. Exemple :

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

Une fois le champ status.isStable défini sur true pour le groupe, la commande est renvoyée.

API

Pour un MIG zonal, envoyez une requête GET à la méthode instanceGroupManagers.get :

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

Pour un groupe d'instances géré régional, remplacez zones/zone par regions/region :

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

L'API renvoie des informations détaillées sur le groupe d'instances, y compris le champ status.isStable.

Si le champ status.isStable est défini sur false, cela signifie que les modifications sont actives, en attente ou que le groupe d'instances géré est lui-même en cours de modification.

Si le champ status.isStable est défini sur true, on peut en déduire les éléments suivants :

  • Aucune des instances du groupe d'instances géré n'est en cours de modification, et le champ currentAction est défini sur NONE pour toutes les instances.
  • Aucune modification n'est en attente pour les instances du groupe d'instances géré.
  • Le groupe d'instances géré n'est pas en cours de modification.

Les groupes d'instances gérés peuvent être modifiés de différentes façons. Exemple :

  • Vous pouvez demander le déploiement d'un nouveau modèle d'instance.
  • Vous pouvez demander à créer, supprimer, redimensionner ou mettre à jour des instances du groupe.
  • Un autoscaler peut demander le redimensionnement du groupe.
  • Une ressource d'autoréparation peut remplacer une ou plusieurs instances non opérationnelles dans le groupe d'instances géré.
  • Des instances d'un groupe d'instances géré régional peuvent être redistribuées.

Une fois toutes les actions terminées, le champ status.isStable est à nouveau défini sur true pour ce groupe d'instances géré.

Pour plus d'informations sur les instances de VM individuelles, consultez la section Vérifier l'état des instances gérées.

Afficher l'historique des opérations d'autoréparation

Si vous avez configuré l'autoréparation, vous pouvez afficher les événements d'autoréparation antérieurs.

Surveiller des mises à jour progressives

Si vous avez lancé une mise à jour progressive et souhaitez savoir quand elle prendra fin, consultez la section Surveiller les mises à jour.

Afficher la configuration avec état

Si vous avez configuré un MIG avec état et que vous souhaitez examiner sa configuration, consultez la section Afficher la configuration avec état.

Obtenir des informations sur les instances de VM gérées d'un MIG

Répertorier les instances gérées d'un MIG

Pour obtenir la liste des instances gérées d'un groupe, avec leurs états et modèles, utilisez la console , l'outil gcloud ou l'API.

Console

  1. Dans Google Cloud Console, accédez à la page Groupes d'instances.

    Accéder à la page "Groupes d'instances"

    Cette page répertorie les groupes d'instances dont vous disposez, ainsi que les groupes d'instances non gérés.

  2. Dans la colonne Nom de la liste, cliquez sur le nom du groupe d'instances que vous souhaitez examiner. La page qui s'ouvre affiche les propriétés du groupe ainsi que la liste des instances qui en font partie.

gcloud

Utilisez la sous-commande list-instances de l'outil gcloud.

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

La commande renvoie une liste d'instances et leurs informations associées, y compris l'état actuel, le modèle d'instance et la dernière erreur.

API

Pour un MIG zonal, envoyez une requête GET à la méthode instanceGroupManagers.listManagedInstances et incluez le nom d'un groupe d'instances géré spécifique :

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

Pour les groupes d'instances gérés régionaux (multizones), utilisez plutôt la ressource regionInstanceGroupManagers : regionInstanceGroupManagers.list.

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

La réponse comprend une liste d'instances et leurs informations associées, y compris l'état actuel et le modèle d'instance.

Vérifier l'état des instances gérées

Plusieurs commandes et requêtes permettent de créer, de supprimer et de modifier les instances d'un groupe géré. Un message DONE est renvoyé lorsque le groupe planifie ces actions pour les instances. Celles-ci ne sont toutefois créées, supprimées ou mises à jour qu'une fois les actions planifiées terminées. Vous devez vérifier l'état de ces instances ou l'état du groupe lui-même.

Vous pouvez voir currentAction en cours de réalisation et status de chaque instance dans un groupe d'instances géré avec l'outil de ligne de commande gcloud ou l'API.

gcloud

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

gcloud renvoie une liste des instances présentes dans le groupe, avec leurs états et actions en cours. Exemple :

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

Dans l'API, envoyez une requête GET à la méthode regionInstanceGroupManagers.listManagedInstances. Pour un groupe d'instances géré zonal, utilisez la méthode instanceGroupManagers.listManagedInstances.

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

L'API renvoie une liste des instances présentes dans le groupe, y compris les champs instanceStatus et currentAction de chaque instance.

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

Vous pouvez consulter l'état de chaque instance d'un groupe d'instances géré à l'aide du champ instanceStatus. Pour afficher la liste des valeurs valides du champ instanceStatus, reportez-vous à la section Consulter l'état d'une instance.

Si l'instance subit une quelconque modification, l'une des actions suivantes est insérée dans le champ currentAction pour vous aider à suivre l'évolution de cette modification. Dans le cas contraire, le champ currentAction est défini sur NONE.

Les valeurs possibles du champ currentAction sont les suivantes :

  • ABANDONING : l'instance est en cours de suppression du groupe d'instances géré.
  • CREATING : l'instance est en cours de création.
  • CREATING_WITHOUT_RETRIES : l'instance est en cours de création sans nouvelle tentative. Si l'instance n'est pas créée lors de la première tentative, le groupe d'instances géré n'essaie pas de remplacer à nouveau l'instance.
  • DELETING : l'instance est en cours de suppression.
  • RECREATING : l'instance est en cours de remplacement.
  • REFRESHING : l'instance est supprimée de ses pools cibles actuels et rajoutée dans la liste des pools cibles actuels (cette liste peut être identique ou différente des pools cibles existants).
  • RESTARTING : l'instance est en cours de redémarrage à l'aide des méthodes stop et start.
  • VERIFYING : l'instance a été créée et est en cours de vérification.
  • NONE : aucune action n'est effectuée sur l'instance.

Pour vérifier si le groupe dans son ensemble est stable ou en cours de modification, consultez la section Vérifier l'état du groupe.

Vérifier les états

Si vous avez configuré l'autoréparation pour votre groupe d'instances géré, vous pouvez vérifier l'état de chaque VM. Consultez la section Configurer la vérification d'état.

Répertorier les erreurs d'instance

Si vos instances gérées ont rencontré des erreurs, vous pouvez les afficher pour en chercher l'origine et minimiser le problème.

Utilisez Google Cloud Console, l'outil gcloud ou l'API Compute Engine pour répertorier les erreurs.

Console

  1. Dans Google Cloud Console, accédez à la page Groupes d'instances.

    Accéder à la page Groupes d'instances

  2. Dans la colonne Nom de la liste, cliquez sur le nom du groupe d'instances que vous souhaitez examiner. La page qui s'ouvre affiche les propriétés du groupe ainsi que la liste des instances qui en font partie.

  3. Cliquez sur Erreurs.

gcloud

Utilisez la commande instance-groups managed list-errors pour répertorier les erreurs les plus récentes du groupe.

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

Exemple :

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

Envoyez une requête GET à la méthode listErrors pour un groupe d'instances géré régional ou zonal.

Exemple :

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

La requête renvoie une réponse semblable à celle-ci :


{
 "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=="
}

L'API listErrors accepte la pagination de liste. Pour parcourir la page de résultats suivante, utilisez le champ nextPageToken d'une réponse figurant dans une requête ultérieure. Par exemple : GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/listErrors&maxResults=100&nextPageToken=next-page-token, remplaçant next-page-token par le jeton obtenu à partir de la réponse précédente.

La liste des erreurs possibles peut inclure entre autres les exemples suivants :

  • Les raisons suivantes empêchent de créer une instance :
    • Indisponibilité de la capacité préemptive
    • Manque de quota (par exemple, pour les processeurs d'une région donnée)
    • Limite du nombre d'instances de VM atteinte pour le réseau associé au groupe
    • Suppression de l'image disque spécifiée dans le champ properties.disks[].initializeParams.sourceImage du modèle d'instance ou modification de ses autorisations
    • Refus de paiement avec la carte de crédit associée au compte de facturation
  • Les raisons suivantes empêchent de supprimer une instance :
    • Le compte de service utilisé par ce groupe ne dispose pas de l'autorisation compute.instances.delete.
    • Les requêtes de suppressions simultanées sont trop nombreuses, excédant le nombre maximal de tentatives.
  • Une instance ne peut pas être ajoutée à un pool cible, car celui-ci a été supprimé.

Après avoir inspecté ces erreurs, vous pouvez les minimiser. Exemple :

  • Déplacez votre charge de travail vers une autre zone dotée d'une capacité préemptive.
  • Demandez une augmentation de quota dans une région donnée.
  • Ajoutez l'autorisation compute.instances.delete au compte de service utilisé par le groupe.

Si une action déclenchée par un groupe d'instances géré échoue (par exemple, si un autoscaler rencontre une erreur lorsqu'il tente d'augmenter la taille du groupe), le groupe peut immédiatement effectuer une nouvelle tentative de cette action. Si la dernière tentative immédiate échoue, le MIG enregistre l'erreur et vous pouvez l'afficher en répertoriant les erreurs d'instance. Après un certain intervalle entre les tentatives, le groupe effectue une nouvelle tentative de l'action. Si l'erreur persiste, elle peut être enregistrée plusieurs fois.

Compute Engine conserve les 500 erreurs les plus récentes ayant eu lieu au cours des huit derniers jours, même si les instances sous-jacentes n'existent plus ou n'ont pas pu être créées.

Vérifier si une instance de VM fait partie d'un MIG

Pour vérifier si une VM spécifique appartient actuellement à un groupe, vous pouvez utiliser la console ou l'API.

Console

  1. Dans Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Cliquez sur une instance pour accéder aux informations sur l'instance de VM.
  3. Si l'instance de VM fait partie d'un groupe d'instances géré, le nom de ce groupe apparaît sous l'en-tête Utilisé par. Si l'instance de VM ne fait partie d'aucun groupe, l'en-tête Utilisé par n'apparaît pas sur la page des informations sur l'instance.

API

Consultez la section Afficher les référents associés à des instances de VM.

Pour identifier si une VM appartient ou appartenait à un groupe d'instances géré, vous pouvez également rechercher les deux clés suivantes dans les métadonnées de l'instance :

  • instance-template indique le modèle à partir duquel la VM a été créée.
  • created-by indique le groupe d'instances géré qui a créé la VM.

Même si vous abandonnez l'instance, la VM conserve ces entrées de métadonnées, sauf si vous les supprimez manuellement.

Par exemple, s'il existe une VM nommée random-instance-biy et que vous souhaitez savoir si la VM a été créée par un groupe d'instances géré, vous pouvez décrire l'instance et rechercher les clés de métadonnées. Exemple :

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

L'outil gcloud renvoie un résultat semblable à celui-ci :

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

Afficher l'état préservé d'une instance gérée

Si vous avez configuré un MIG avec état et que vous souhaitez afficher l'état conservé de chaque instance gérée, consultez la section Afficher la configuration avec état et l'état conservé.

Étapes suivantes