À propos de la réparation des VM pour la haute disponibilité


Ce document explique comment un groupe d'instances géré (MIG) fournit la haute disponibilité de votre application en réparant les VM défaillantes et non opérationnelles dans le groupe.

Un MIG maintient votre application fonctionnelle et disponible de manière proactive en gérant le nombre de VM en cours d'exécution dans le groupe. Si une VM du groupe tombe en panne, le MIG la répare en la recréant comme suit afin de la remettre en service :

  • Réparation automatique d'une VM défaillante : si une VM échoue ou est supprimée par une action non initiée par le MIG, le MIG la répare automatiquement. Dans ce document, consultez la section Réparer automatiquement une VM défaillante.
  • Réparez une VM en fonction d'une vérification de l'état de l'application : méthode facultative pour améliorer davantage la haute disponibilité en réparant les VM non opérationnelles. Si vous configurez une vérification de l'état basée sur l'application et que celle-ci échoue, le MIG marque cette VM comme non opérationnelle et la répare. La réparation d'une VM basée sur une vérification de l'état de l'application est également appelée autoréparation. Dans ce document, consultez la section Réparer une VM en fonction d'une vérification de l'état de l'application.

Réparer automatiquement une VM défaillante

Si une VM d'un MIG échoue, le MIG répare automatiquement la VM défaillante en la recréant. Une VM peut échouer pour les raisons suivantes :

  • Motifs inattendus, tels qu'une défaillance matérielle.
  • Actions non initiées par le MIG, telles que les suivantes :
    • Préemption d'une VM Spot.
    • Événements de maintenance de l'infrastructure dans le cas d'une instance de VM pour laquelle la migration à chaud n'est pas activée.
    • Suppression d'une VM dans le groupe à l'aide de la méthode instances.delete ou de la commande gcloud compute instances delete.

Si le MIG arrête intentionnellement une VM (par exemple, lorsqu'un autoscaler supprime une VM), il ne la répare pas.

Réparer une VM en fonction d'une vérification d'état de l'application

Outre la réparation automatique des VM défaillantes, vous pouvez souhaiter réparer une VM si votre application exécutée sur la VM se bloque, plante ou manque de mémoire. Pour vous assurer que l'application répond comme prévu, vous pouvez configurer une vérification d'état basée sur l'application.

Une vérification d'état basée sur l'application vérifie régulièrement que votre application sur chaque VM d'un MIG répond comme prévu. Si l'application sur une VM ne répond pas, le MIG signale cette VM comme non opérationnelle. Le MIG répare ensuite la VM non opérationnelle. La réparation d'une VM basée sur la vérification d'état de l'application est appelée autoréparation.

Pour s'assurer que le MIG continue d'exécuter un sous-ensemble de ses VM, le groupe ne répare pas simultanément toutes ses VM. Cela peut s'avérer utile si une vérification de l'état incorrecte déclenche des réparations inutiles, si une règle de pare-feu mal configurée empêche la vérification de l'état de vérifier la VM, ou si des problèmes de connectivité réseau ou d'infrastructure identifient à tort une VM opérationnelle comme non opérationnelle Toutefois, si un MIG zonal ne comporte qu'une seule VM ou si un MIG régional ne compte qu'une seule VM par zone, le MIG autorépare ces VM si elles ne sont plus opérationnelles.

Règle d'autoréparation

Chaque MIG dispose d'une règle d'autoréparation dans laquelle vous pouvez configurer une vérification d'état et définir un délai initial. Le délai initial correspond au temps nécessaire à une nouvelle VM pour initialiser et exécuter son script de démarrage. Le délai initial commence au moment où le MIG remplace le champ currentAction de la VM par VERIFYING. Pendant la période initiale de retard d'une VM, le MIG ignore les vérifications d'état ayant échoué, car la VM peut être en cours de démarrage. Cela empêche le MIG de recréer prématurément une VM. Si la vérification de l'état reçoit une réponse opérationnelle pendant le délai initial, cela signifie que le processus de démarrage est terminé et que la VM est prête.

Pour en savoir plus sur la configuration d'une règle d'autoréparation, consultez la page Configurer une vérification de l'état et une autoréparation des applications.

Surveiller les changements de l'état des applications

Si vous avez configuré une vérification d l'état basée sur l'application dans votre MIG, vous pouvez vérifier l'état de chaque VM dans le MIG. Pour en savoir plus, consultez la section Vérifier l'état.

Vous pouvez également surveiller les modifications de l'état d'une VM. Pour en savoir plus, consultez la page Surveiller les changements d'état.

Tarifs

Lorsque vous configurez une vérification d'état basée sur l'application, Compute Engine écrit par défaut une entrée de journal chaque fois que l'état d'une instance gérée change. Cloud Logging fournit un quota mensuel gratuit au-delà duquel la journalisation est facturée en fonction du volume de données. Pour éviter les coûts, vous pouvez désactiver les journaux des changements d'état.

Comportement lors d'une réparation

Les sections suivantes expliquent le comportement lors des réparations automatiques et des réparations basées sur la vérification de l'état de l'application.

Mise à jour lors de la réparation

Par défaut, lors d'une réparation, un MIG recrée une VM à l'aide du modèle d'instance utilisé à l'origine pour créer la VM. Par exemple, si une VM a été créée à l'aide du modèle instance-template-a et que vous mettez ensuite à jour le MIG de façon à ce qu'il utilise le modèle instance-template-b en mode OPPORTUNISTIC, le MIG utilise quand même instance-template-a pour recréer la VM.

Si vous souhaitez que votre MIG utilise le dernier modèle d'instance et les configurations par instance lors de la réparation de VM, vous pouvez configurer le groupe pour qu'il applique les mises à jour de configuration lors des réparations.

Traitement des disques

Lors d'une réparation, lors de la recréation d'une VM à partir de son modèle, le MIG traite différents types de disques différemment. En cas de tentative de recréation d'une VM, certaines configurations de disque peuvent entraîner l'échec de la réparation.

Type de disque autodelete Comportement lors d'une réparation
Nouveau disque persistant true Le disque est recréé comme spécifié dans le modèle d'instance. Toutes les données écrites sur ce disque sont perdues lorsque le disque et sa VM sont recréés.
Nouveau disque persistant false Le disque est conservé et réassocié lorsque le MIG recrée la VM.
Disque persistant existant true L'ancien disque est supprimé. L'opération de recréation de VM échoue, car Compute Engine ne peut pas réassocier un disque supprimé à la VM. Toutefois, pour les disques en lecture-écriture existants, un MIG ne peut contenir qu'une seule VM, car un même disque persistant ne peut pas être associé à plusieurs VM en mode lecture-écriture.
Disque persistant existant false L'ancien disque est réassocié comme spécifié dans le modèle d'instance. Les données figurant sur le disque sont conservées. Toutefois, pour les disques en lecture-écriture existants, un MIG ne peut contenir qu'une seule VM, car un même disque persistant ne peut pas être associé à plusieurs VM en mode lecture-écriture.
Nouveau disque SSD local Non disponible Le disque est recréé comme spécifié dans le modèle d'instance. Les données figurant sur un disque SSD local sont perdues en cas de recréation ou de suppression d'une VM.

Le MIG ne réassocie pas les disques qui ne sont pas spécifiés dans le modèle d'instance ni dans les configurations par instance, tels que les disques que vous avez associés manuellement à une VM après sa création.

Pour conserver les données importantes écrites sur le disque, vous devez prendre des précautions, par exemple :

Si vous souhaitez conserver des paramètres importants pour vos VM, nous vous recommandons également d'utiliser une image personnalisée dans votre modèle d'instance. Une image personnalisée contient tous les paramètres personnalisés dont vous avez besoin. Lorsque vous spécifiez une image personnalisée dans votre modèle d'instance, le MIG recrée les VM à l'aide de l'image personnalisée qui contient les paramètres personnalisés dont vous avez besoin.

Désactiver les réparations

Vous pouvez désactiver les réparations effectuées automatiquement par un MIG. Lorsque vous désactivez les réparations, la réparation des VM défaillantes et la réparation en fonction d'une vérification de l'état de l'application sont désactivées.

Vous pouvez désactiver les réparations d'un groupe d'instances géré dans les scénarios suivants :

  • Pour examiner ou déboguer une VM défaillante sans interruption de l'autoréparation
  • Pour réparer des VM manuellement ou mettre en œuvre votre propre logique de réparation
  • Pour empêcher l'enregistrement de nouvelles VM lorsqu'un job par lot est en cours
  • Pour observer l'état de l'application sans réparer la VM qui n'est pas opérationnelle
  • Pour affiner la configuration de la vérification de l'état sans déclencher de réparation à tort

Lorsque vous désactivez les réparations, le MIG n'effectue aucune action si une VM du groupe échoue ou devient non opérationnelle. Les VM défaillantes et non opérationnelles continuent d'être dans le groupe et le nombre cible de VM en cours d'exécution dans le MIG (targetSize) reste le même.

Si le type de mise à jour du MIG est défini sur proactive et qu'un nouveau modèle d'instance est disponible, le MIG tente de mettre à jour les VM défaillantes et non opérationnelles.

Si vous avez configuré une vérification de l'état basée sur l'application, la désactivation des réparations n'affecte pas le fonctionnement de la vérification de l'état. La vérification de l'état continue de vérifier l'application et de fournir les états de la VM. Cela vous permet de surveiller l'état de l'application tout en empêchant le MIG de réparer les VM non opérationnelles.

Si le MIG fait partie d'un service de backend d'un équilibreur de charge et que vous désactivez les réparations dans le MIG, les VM non réparées et non opérationnelles ne répondent pas à la vérification de l'état de l'équilibreur de charge. Si le nombre de ces VM défaillantes ou non opérationnelles augmente dans le MIG, l'équilibreur de charge peut réduire le trafic vers ce MIG ou basculer vers un autre backend, s'il est configuré. Lorsque les VM défaillantes redeviennent disponibles, l'équilibreur de charge reprend le trafic vers le MIG.

Pour en savoir plus, consultez la section Désactiver les réparations dans un MIG.

Étapes suivantes