Résoudre des problèmes liés aux groupes d'instances gérés


Plusieurs problèmes peuvent empêcher un groupe d'instances géré de créer ou de recréer une instance de VM.

Si des journaux sont générés pour un MIG supprimé

Le problème peut être lié aux situations suivantes :

L'autoscaler associé existe toujours

Si vous avez supprimé un MIG à l'aide de l'API Compute Engine et que vous n'avez pas envoyé de requête distincte pour supprimer l'autoscaler associé, l'explorateur de journaux peut afficher les journaux avec le message suivant.

The resource 'projects/PROJECT/zones/ZONE/instanceGroupManagers/DELETED_INSTANCE_GROUP_NAME' was not found.

Solution :

Pour résoudre ce problème, supprimez l'autoscaler associé à l'aide des méthodes de l'API Compute Engine :

Si votre MIG ne peut pas créer ou recréer des instances

Le problème peut être lié aux situations suivantes :

Le disque de démarrage existe déjà

Par défaut, un disque persistant de démarrage est créé lorsque vous créez une instance. Le nom du disque de démarrage correspond au nom de la VM. Si vous nommez la VM my-instance, le disque est également nommé my-instance. Cependant, si un disque persistant existant porte déjà ce nom, la requête échoue. Pour résoudre ce problème, vous pouvez éventuellement prendre un instantané puis supprimer le disque persistant existant.

Le modèle d'instance n'est pas valide

Si vous avez récemment mis à jour votre modèle d'instance, il se peut qu'une propriété non valide empêche le MIG de créer la VM. Examinez les propriétés pour identifier les erreurs courantes suivantes :

  • Vous avez spécifié une ressource qui n'existe pas, telle qu'une image source.
  • Vous avez mal orthographié un nom de ressource.
  • Vous avez essayé d'associer un disque persistant non amorçable existant en mode lecture/écriture, mais votre groupe contient plusieurs VM. Pour les groupes comportant plusieurs VM, les disques supplémentaires que vous souhaitez partager entre toutes les VM du groupe ne peuvent être associés qu'en mode lecture seule.

Limite dépassée pour le type de ressource

L'erreur suivante se produit lorsque vous essayez de créer plus de 2 000 VM dans un MIG régional ou plus de 1 000 VM dans un MIG zonal. Vous avez atteint la taille maximale pour votre groupe d'instances.

Message d'erreur :

ERROR: (gcloud.compute.<INSTANCE_GROUP_TYPE>.<METHOD>) Could not
fetch resource:

 - Exceeded limit 'MAX_INSTANCES_IN_INSTANCE_GROUP' on resource 'PROJECT_ID'.
 Limit: NUMBER

Solution :

Pour résoudre ce problème, essayez l'une des solutions suivantes :

Si vous ne pouvez pas supprimer votre MIG ou ses instances

Le problème peut être lié à la situation suivante.

Ressource introuvable dans la zone ou la région

L'erreur suivante se produit lorsque vous essayez de supprimer un MIG régional et que vous spécifiez l'option --zone, ne spécifiez aucune région ou spécifiez une région incorrecte. Une erreur similaire peut se produire si vous essayez de supprimer un MIG zonal et que vous spécifiez l'option --region.

Message d'erreur :

  • ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed:
    ‐ The resource 'projects/PROJECT/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME' was not found
    
  • ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed:
    ‐ The resource 'projects/PROJECT/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME' was not found
    

Solution :

Pour résoudre ce problème, essayez l'une des solutions suivantes :

La ressource est utilisée par un service de backend

Vous ne pouvez pas supprimer un groupe d'instances lorsqu'il est utilisé par le service de backend d'un équilibreur de charge. Vous devez supprimer l'instance du service de backend avant de pouvoir supprimer le groupe d'instances.

Message d'erreur :

  • ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed:
    ‐ The instance_group_manager resource 'projects/PROJECT/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME is already being used by 'projects/PROJECT/global/backendServices/BACKEND_SERVICE
  • ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed:
    ‐ The instance_group_manager resource 'projects/PROJECT/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME is already being used by 'projects/PROJECT/global/backendServices/BACKEND_SERVICE

Solution :

  1. Facultatif : drainez le groupe d'instances backend.

  2. Supprimez le MIG du service de backend régional ou global.

    • Pour un MIG zonal, exécutez la commande suivante :

      gcloud compute backend-services remove-backend BACKEND_SERVICE \
          --instance-group=INSTANCE_GROUP_NAME \
          --instance-group-zone=ZONE \
          [--region=REGION | --global]
      
    • Pour un MIG régional, exécutez la commande suivante :

      gcloud compute backend-services remove-backend BACKEND_SERVICE  \
          --instance-group=INSTANCE_GROUP_NAME \
          --instance-group-region=REGION \
          [--region=REGION | --global]
      
  3. Supprimez le MIG :

    gcloud compute instance-groups managed delete INSTANCE_GROUP_NAME
    

Si votre MIG tente en permanence de recréer des instances

Le problème peut être lié à la situation suivante.

Les vérifications d'état ne peuvent pas atteindre l'instance

Si vous avez configuré une règle d'autoréparation, mais que vous n'avez pas configuré (ou mal configuré) la règle de pare-feu qui permet aux vérifications d'état d'atteindre votre application, vos VM ne semblent pas opérationnelles et le MIG tente constamment de les recréer. Pour en savoir plus sur la configuration d'une règle de pare-feu de vérification d'état, consultez cet exemple de configuration de vérification d'état.