Résilience des VM

Ce document présente la résilience des machines virtuelles (VM) et les vérifications facultatives que les opérateurs d'applications peuvent activer pour obtenir des informations plus approfondies à partir d'une VM dans Google Distributed Cloud (GDC) air-gapped.

Ce document est destiné aux développeurs du groupe d'opérateurs d'applications qui exploitent des VM. Pour en savoir plus, consultez la documentation sur les audiences pour GDC air-gapped.

Les VM de GDC offrent une haute disponibilité pour améliorer la continuité du service en cas de défaillance de l'infrastructure sous-jacente ou de l'invité. Vous pouvez également configurer le système pour qu'il émette des signaux d'état facultatifs qui fournissent des informations plus détaillées sur l'état des VM.

Vérifications de la disponibilité des VM

Le système fournit les vérifications de disponibilité de VM suivantes :

Nom de la vérification Description Assistance pour les actions d'atténuation Disponibilité du signal
Vérification de l'état des invités Vérifie l'état de santé de l'OS invité. Condition requise pour les autres vérifications dans le guest. Oui Facture dans la chambre
Vérification du stockage Vérifie l'état du stockage sous-jacent de la VM. Oui Facture dans la chambre
Vérification de la sortie Vérifie la connectivité à un point de terminaison interne bien connu. Non Vérification dans l'établissement et à l'extérieur
Vérification de l'entrée Vérifie l'accessibilité de la VM à l'aide de son accès entrant configuré (VirtualMachineExternalAccess). Non Facture dans la chambre

Les actions d'atténuation peuvent redémarrer la VM et la replanifier sur un autre nœud en cas de défaillances fréquentes.

Demander des autorisations et un accès

Pour effectuer les tâches listées sur cette page, vous devez disposer du rôle Administrateur VirtualMachine du projet. Suivez les étapes pour vérifier que vous disposez du rôle Administrateur VirtualMachine du projet (project-vm-admin) dans l'espace de noms du projet dans lequel réside la VM.

Activer les vérifications dans le système d'exploitation invité

Par défaut, la vérification dans le système d'exploitation invité est désactivée si guestHealthCheck n'est pas présent.

Pour activer ou désactiver la vérification dans la VM, vous devez mettre à jour le GuestEnvironment dans la spécification de la VM. Ce paramètre collecte les métriques à l'intérieur de la VM, à condition que l'agent invité soit installé. Si guestHealthCheck n'est pas présent, les vérifications dans le système invité sont désactivées par défaut.

  1. Ouvrez le fichier de configuration de votre VM.
  2. Accédez à la section spec:.
  3. Ajoutez ou modifiez les champs guestEnvironment: et guestHealthCheck: pour activer la vérification.
  4. Définissez le champ enable sur "true".

Voici un exemple de configuration dans un fichier YAML :

spec:
  compute:
    virtualMachineType: n2-standard-2-gdc
  guestEnvironment:
    guestHealthCheck:
      enable: true

Vérifier les vérifications

Après avoir configuré votre VM, vous pouvez vérifier l'état des vérifications de disponibilité en inspectant le Condition de la machine virtuelle dans son Status.

kubectl --kubeconfig MANAGEMENT_API_SERVER \
  -n NAMESPACE_NAME \
  get gvm -o yaml

Le résultat indique l'état des différentes vérifications. Par exemple, si guestHealthCheck est activé, les conditions d'état gvm sont renseignées avec le signal VMGuestHealth.

Désactiver la haute disponibilité des VM

Par défaut, la haute disponibilité des VM est activée si l'annotation n'est pas présente. Vous pouvez désactiver explicitement la haute disponibilité pour une VM spécifique en ajoutant une annotation. Ajoutez l'annotation suivante pour désactiver la haute disponibilité des VM :

  1. Ouvrez le fichier de configuration de votre VM.
  2. Ajoutez l'annotation highavailability.virtualmachine.gdc.goog/enable: false aux métadonnées de la VM pour désactiver la haute disponibilité.

Voici un exemple d'annotation dans un fichier YAML :

metadata:
  annotations:
    highavailability.virtualmachine.gdc.goog/enable: false

Atténuation des défaillances de nœuds

Les actions d'atténuation automatisées permettent de résoudre les problèmes de VM et de maintenir la haute disponibilité. Lorsque l'infrastructure sous-jacente ne peut plus prendre en charge une VM en cours d'exécution, le système tente d'isoler le nœud non opérationnel et de replanifier la VM sur un nœud opérationnel. Les scénarios suivants peuvent déclencher cette atténuation au niveau du nœud :

  • Partition de nœud à partir du serveur d'API : le nœud Bare Metal qui héberge la VM est partitionné à partir du serveur d'API Management en raison d'une condition telle que la suivante :

    • Perte de connectivité réseau entre le serveur d'API et le nœud.
    • L'agent kubelet du nœud est hors service.
    • Le nœud observe une panne de courant.
  • Partition de VM de cluster d'utilisateur : une VM de nœud de calcul de cluster d'utilisateur est partitionnée à partir du serveur d'API Management de son cluster.