Ce document explique comment désactiver la réparation des VM défaillantes et non opérationnelles dans un groupe d'instances géré (MIG) et, si ce n'est pas déjà fait, comment configurer le MIG pour réparer les VM.
Par défaut, un MIG répare automatiquement une VM défaillante du groupe en la recréant. Si vous avez configuré une vérification de l'état basée sur l'application, le MIG répare également les VM non opérationnelles sur lesquelles votre application échoue à la vérification de l'état. La réparation d'une VM basée sur une vérification de l'état basée sur l'application est également appelée autoréparation.
Si vous ne souhaitez pas qu'un MIG répare une VM défaillante ou non opérationnelle, vous pouvez désactiver les réparations dans le MIG. Désactiver les réparations est utile lorsque vous souhaitez résoudre le problème d'une VM défaillante, implémenter votre propre logique de réparation ou surveiller l'état de l'application sans réparer les VM non opérationnelles.
Pour vérifier si la réparation est déjà désactivée dans un MIG, consultez la configuration de la réparation dans un MIG.
Pour en savoir plus sur les réparations d'un MIG, consultez la section À propos de la réparation des VM pour la haute disponibilité.
Avant de commencer
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification permet de valider votre identité pour accéder aux services et aux API Google Cloud . Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services Google Cloud et aux API, vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :
gcloud initSi vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
- Définissez une région et une zone par défaut.
REST
Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.
Installez la Google Cloud CLI.
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud .
Désactiver les réparations dans un MIG
Lorsque vous désactivez les réparations dans un MIG, les réparations de VM défaillantes et l'autoréparation sont désactivées par défaut. Si vous ne souhaitez désactiver que l'autoréparation, consultez Désactiver l'autoréparation.
Console
Dans la console Google Cloud , accédez à la page Groupes d'instances.
Cliquez sur le nom du MIG pour lequel vous souhaitez désactiver la réparation.
Cliquez sur Modifier.
Cliquez sur Cycle de vie et autoréparation des instances pour développer la section.
- Dans la section Action en cas d'échec, définissez le champ Action par défaut en cas d'échec sur Aucune action.
- Si vous avez configuré l'autoréparation et que vous ne souhaitez pas que le MIG la désactive, définissez le champ En cas d'échec de la vérification de l'état sur Réparer l'instance dans la section Autoréparation.
Cliquez sur Enregistrer.
gcloud
Pour désactiver les réparations dans un MIG, utilisez la commande update comme suit. Cela désactive la réparation automatique par défaut.
gcloud compute instance-groups managed update MIG_NAME \
--default-action-on-vm-failure=do-nothing \
--zone=ZONE
Si l'autoréparation est configurée dans le MIG et que vous ne souhaitez pas la désactiver par défaut, utilisez la commande bêta update pour définir l'option --action-on-vm-failed-health-check sur repair. Cela garantit que l'autoréparation des VM non opérationnelles continue de fonctionner même si la réparation des VM défaillantes est désactivée.
gcloud beta compute instance-groups managed update MIG_NAME \
--default-action-on-vm-failure=do-nothing \
--action-on-vm-failed-health-check=repair \
--zone=ZONE
Remplacez les éléments suivants :
MIG_NAME: nom du groupe d'instances.ZONE: zone où se trouve votre groupe d'instances géré Pour un MIG régional, utilisez le flag--region=REGION.
REST
Pour désactiver les réparations dans un MIG, utilisez les méthodes API comme suit. Cela désactive la réparation automatique par défaut.
- Pour un MIG zonal, utilisez la méthode
instanceGroupManagers.patch. - Pour un MIG régional, utilisez la méthode
regionInstanceGroupManagers.patch.
Par exemple, effectuez l'appel suivant dans un MIG zonal. Cette option désactive la réparation automatique par défaut.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
"instanceLifecyclePolicy":
{
"defaultActionOnFailure": "DO_NOTHING"
}
}
Si l'autoréparation est configurée dans le MIG et que vous ne souhaitez pas la désactiver par défaut, utilisez les méthodes d'API comme suit pour définir l'indicateur onFailedHealthCheck sur REPAIR. Cela garantit que l'autoréparation des VM non opérationnelles continue de fonctionner même si la réparation des VM défaillantes est désactivée.
- Pour un MIG zonal, utilisez la méthode
beta.instanceGroupManagers.patch. - Pour un MIG régional, utilisez la méthode
beta.regionInstanceGroupManagers.patch.
Par exemple, effectuez l'appel suivant dans un MIG zonal :
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
"instanceLifecyclePolicy":
{
"defaultActionOnFailure": "DO_NOTHING",
"onFailedHealthCheck": "REPAIR"
}
}
Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet.MIG_NAME: nom du MIG.ZONE: zone où se trouve le MIG. Pour un MIG régional, utilisezregions/REGIONdans l'URL.
Limites
Si un MIG présente l'un des éléments suivants, vous ne pouvez pas désactiver les réparations dans le MIG en définissant le champ defaultActionOnFailure sur DO_NOTHING :
Désactiver l'autoréparation
Lorsque vous avez configuré une vérification de l'état de l'application dans un MIG, si vous ne souhaitez pas que le MIG répare les VM non opérationnelles, vous pouvez désactiver l'autoréparation séparément. Cela ne désactive pas la réparation des VM défaillantes.
Console
Dans la console Google Cloud , accédez à la page Groupes d'instances.
Cliquez sur le nom du MIG pour lequel vous souhaitez désactiver l'autoréparation.
Cliquez sur Modifier.
Cliquez sur Cycle de vie et autoréparation des instances pour développer la section.
Dans la section Autoréparation, définissez le champ En cas d'échec de la vérification d'état sur Aucune action.
Cliquez sur Enregistrer.
gcloud
Pour désactiver l'autoréparation dans un MIG, utilisez la commande bêta update et définissez l'indicateur --action-on-vm-failed-health-check sur do-nothing.
Par exemple, utilisez la commande suivante pour un MIG zonal :
gcloud beta compute instance-groups managed update MIG_NAME \
--action-on-vm-failed-health-check=do-nothing \
--zone=ZONE
Remplacez les éléments suivants :
MIG_NAME: nom du MIG.ZONE: zone où se trouve le MIG. Pour un MIG régional, utilisez le flag--region=REGION.
REST
Pour désactiver l'autoréparation dans un MIG, utilisez les méthodes API comme suit et définissez l'indicateur --action-on-vm-failed-health-check sur do-nothing.
- Pour un MIG zonal, utilisez la méthode
beta.instanceGroupManagers.patch. - Pour un MIG régional, utilisez la méthode
beta.regionInstanceGroupManagers.patch.
Par exemple, exécutez la requête suivante pour désactiver l'autoréparation dans un MIG zonal :
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
{
"instanceLifecyclePolicy":
{
"onFailedHealthCheck": "DO_NOTHING"
}
}
Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet.ZONE: zone où se trouve le MIG. Pour un MIG régional, utilisezregions/REGIONdans l'URL.MIG_NAME: nom du groupe d'instances.
Activer les réparations ou l'autoréparation
Par défaut, un MIG répare les VM défaillantes et, si l'autoréparation est configurée, il répare également les VM non opérationnelles. Si vous avez désactivé les réparations, la réparation automatique ou les deux, vous pouvez les réactiver.
Console
Dans la console Google Cloud , accédez à la page Groupes d'instances.
Cliquez sur le nom du MIG pour lequel vous souhaitez activer la réparation.
Cliquez sur Modifier.
Cliquez sur Cycle de vie et autoréparation des instances pour développer la section.
- Pour réparer les VM défaillantes, dans la section Action en cas d'échec, définissez le champ Action par défaut en cas d'échec sur Réparer l'instance.
- Pour réparer les VM non opérationnelles, dans la section Autoréparation, définissez le champ En cas d'échec de la vérification de l'état sur Réparer l'instance. Si vous définissez cette valeur sur Action par défaut, la réparation automatique utilise le même paramètre que celui que vous configurez pour le champ Action par défaut en cas d'échec.
Une fois que vous avez terminé, cliquez sur Enregistrer pour appliquer les modifications.
gcloud
Pour activer les réparations dans un MIG, utilisez la commande update.
Cela active également l'autoréparation si la valeur de l'indicateur --action-on-vm-failed-health-check est default-action.
gcloud compute instance-groups managed update MIG_NAME \
--default-action-on-vm-failure=repair
Si vous avez désactivé la réparation automatique séparément et que vous souhaitez la réactiver, utilisez la commande bêta update :
gcloud beta compute instance-groups managed update MIG_NAME \
--action-on-vm-failed-health-check=default-action OR repair
Remplacez les éléments suivants :
- Remplacez
MIG_NAMEpar le nom d'un MIG. default-actionORrepair: si vous souhaitez que la réparation automatique utilise le même paramètre que celui que vous configurez pour les réparations des VM défaillantes, définissez la valeur surdefault-action. Par exemple, lorsque vous désactivez la réparation des VM défaillantes, le MIG désactive également l'autoréparation. Si vous souhaitez contrôler séparément les réparations des VM non opérationnelles, définissez la valeur surrepair.
REST
Pour activer les réparations dans un MIG, utilisez la méthode API comme suit. Cette opération active également la réparation automatique si la valeur du champ onFailedHealthCheck est DEFAULT_ACTION.
- Pour un MIG zonal, utilisez la méthode
instanceGroupManagers.patch. - Pour un MIG régional, utilisez la méthode
regionInstanceGroupManagers.patch.
Par exemple, envoyez la requête suivante dans un MIG zonal :
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
"instanceLifecyclePolicy": {
"defaultActionOnFailure": "REPAIR"
}
}
Si vous avez désactivé la réparation automatique séparément et que vous souhaitez la réactiver, utilisez la méthode de l'API bêta comme suit :
- Pour un MIG zonal, utilisez la méthode
beta.instanceGroupManagers.patch. - Pour un MIG régional, utilisez la méthode
beta.regionInstanceGroupManagers.patch.
PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
"instanceLifecyclePolicy": {
"onFailedHealthCheck": "DEFAULT_ACTION OR REPAIR"
}
}
Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet.ZONE: zone où se trouve votre groupe d'instances géré Pour un MIG régional, utilisezregions/REGIONdans l'URL.MIG_NAME: nom du MIG.DEFAULT_ACTIONORREPAIR: si vous souhaitez que la réparation automatique utilise le même paramètre que pour les réparations de VM défaillantes, définissez la valeur surDEFAULT_ACTION. Par exemple, lorsque vous désactivez la réparation des VM défaillantes, le MIG désactive également l'autoréparation. Si vous souhaitez configurer l'autoréparation séparément, définissez la valeur surREPAIR.
Étapes suivantes
- Vérifiez la configuration de la réparation dans un MIG.
- Examinez les erreurs d'une VM qui a échoué en répertoriant les erreurs d'instance.
- Inspectez l'état de santé d'une VM.