Fonctionnement des groupes d'instances gérés (MIG) avec état


Un groupe d'instances géré avec état (MIG avec état) conserve l'état unique de chaque instance de machine virtuelle (VM), y compris le nom de la VM, les disques persistants associés, les adresses IP et/ou les métadonnées, lors du redémarrage, de la recréation, de l'autoréparation ou de la mise à jour de la machine.

Cette page explique comment fonctionnent les MIG avec état. Consultez la page Configurer des groupes d'instances gérés (MIG) avec état pour savoir comment configurer un MIG avec état.

Présentation du fonctionnement des MIG avec état

Un MIG est considéré comme étant avec état si vous avez créé une configuration avec état.

Vous créez une configuration avec état en définissant une règle avec état non vide et/ou une ou plusieurs configurations par instance non vides :

  • Une règle avec état définit les éléments que vous souhaitez conserver pour toutes les instances de votre MIG.
  • Une configuration par instance définit les éléments à conserver pour une instance de VM spécifique.

La configuration devient effective après que vous ou le MIG l'avez appliquée :

  • Un MIG applique automatiquement votre configuration de règle avec état aux instances nouvelles et existantes.
  • Lorsque vous créez ou mettez à jour des configurations par instance, vous pouvez choisir d'appliquer la nouvelle configuration manuellement ou automatiquement.

Une fois la configuration avec état (règle avec état et/ou configurations par instance) appliquée, vous pouvez la vérifier en inspectant l'état préservé de chaque instance gérée.

Les modifications apportées ultérieurement à la configuration avec état ou à la taille de votre groupe d'instances géré (par exemple, la diminution de sa taille, ou la suppression ou l'abandon d'instances) peuvent affecter les états conservés des instances.

Comment la configuration avec état est appliquée aux instances gérées

Votre configuration avec état devient effective après que vous ou le MIG l'avez appliquée. L'application de la configuration avec état aux instances d'un MIG dépend de la configuration :

  • Règle avec état : le MIG applique automatiquement votre configuration de règle avec état aux instances nouvelles et existantes.
  • Configurations par instance : lorsque vous créez ou mettez à jour des configurations par instance, vous pouvez choisir d'appliquer la nouvelle configuration manuellement ou automatiquement.

Appliquer une configuration avec état aux instances gérées

Comment les mises à jour de règles avec état sont appliquées aux instances

Lorsque vous créez ou mettez à jour une règle avec état (par exemple, en ajoutant ou en supprimant un disque avec état), le MIG applique automatiquement et de manière asynchrone la configuration de votre règle avec état à toutes les instances gérées du groupe. Un MIG applique également automatiquement la configuration de votre règle avec état aux nouvelles instances lors de leur création, par exemple lorsque vous augmentez la taille d'un MIG ou lorsque vous créez manuellement des instances dans le MIG.

Une fois la configuration appliquée, vous pouvez voir l'effet de la mise à jour dans l'état préservé de la règle de chaque instance gérée.

Les mises à jour d'une règle avec état n'interrompent pas l'exécution des VM.

Lorsque vous mettez à jour une règle avec état pour ajouter un disque avec état, le MIG met à jour chaque ressource de VM, en modifiant la valeur de l'option autoDelete du disque (instances.disks[].autoDelete) :

  • Le MIG définit autoDelete sur FALSE pour les disques que vous configurez avec un état. Cela empêche la suppression de ce disque lors de la recréation d'une instance par autoréparation, mise à jour ou recréation manuelle.
  • Le MIG définit l'option autoDelete pour qu'elle corresponde à la configuration de votre modèle d'instance (instanceTemplates.disks[].autoDelete) pour tous les disques qui doivent être sans état.

La modification de la valeur de l'option autoDelete n'interrompt pas l'exécution d'une VM.

Comment les mises à jour de configurations par instance sont appliquées aux instances

Lorsque vous créez ou mettez à jour une configuration par instance, vous pouvez choisir d'appliquer la nouvelle configuration manuellement ou automatiquement. Pour en savoir plus, consultez la page Appliquer une configuration avec état à partir des configurations par instance.

Le tableau suivant indique les niveaux de perturbation requis pour appliquer différentes mises à jour de configuration par instance à une VM :

Mise à jour de la configuration par instance Perturbation de la VM requise pour l'application
Configurez un disque, défini par le modèle d'instance, avec un état (ajouté à la configuration par instance) ACTUALISER
Configurez un disque, défini par le modèle d'instance, pour qu'il soit sans état (supprimé de la configuration par instance) ACTUALISER
Ajoutez un disque non défini par le modèle d'instance et associez-le à la VM ACTUALISER
Supprimez un disque non défini par le modèle d'instance et dissociez-le de la VM ACTUALISER
Ajoutez une paire clé/valeur de métadonnées ACTUALISER
Supprimez une paire clé/valeur de métadonnées ACTUALISER
Ajoutez un disque de démarrage externe, pas créé à partir du modèle d'instance, et associez-le à la VM REMPLACER
Supprimez un disque de démarrage externe, pas créé à partir du modèle d'instance, dissociez-le de la VM et créez un disque de démarrage à partir du modèle d'instance REPLACE
Définir une adresse IP interne REPLACE
Supprimer une adresse IP interne REPLACE

Lorsqu'une configuration par instance mise à jour est appliquée à la VM correspondante, le groupe d'instances géré effectue les actions suivantes en fonction des éléments avec état mis à jour :

  • Ajoute (ou supprime) des disques, des adresses IP ou des métadonnées à l'état préservé issu de la configuration dans l'instance gérée correspondante.
  • Associe (ou dissocie) des disques qui ne sont pas définis par le modèle d'instance à la VM.
  • Définit (ou supprime) des paires clé/valeur de métadonnées spécifiques sur la VM.
  • Attribue (ou supprime) des adresses IP spécifiées à l'instance de VM.

Une fois qu'une configuration par instance est appliquée à une VM gérée correspondante, vous pouvez voir l'effet de la mise à jour dans l'état préservé de l'instance.

État préservé d'une instance gérée

Lorsqu'il est appliqué, le MIG traduit votre modèle d'instance et votre configuration avec état en "état préservé" pour chaque instance gérée.

Vous pouvez afficher l'état préservé en inspectant une instance gérée.

Le MIG gère automatiquement ces états préservés et applique automatiquement et de manière asynchrone cet état à chaque instance de VM correspondante dans le MIG.

État préservé des VM gérées générées par l'application d'une configuration avec état.

L'état préservé décrit les éléments individuels (disques persistants, adresses IP, métadonnées) avec état pour une instance donnée:

État préservé généré par l'application d'une configuration avec état.

L'état préservé généré à partir d'une règle avec état est stocké séparément de l'état préservé généré à partir d'une configuration par instance. Le groupe d'instances géré combine les deux lors de la recréation d'une VM, mais l'état préservé d'une configuration par instance est prioritaire.

État préservé conformément à la règle avec état

Une règle avec état spécifie des éléments, présents dans toutes les instances et définis dans le modèle d'instance du MIG, à préserver individuellement pour chaque instance de VM dans un MIG.

Lorsqu'elle est appliquée, le MIG traduit la règle avec état en états préservés spécifiques à l'instance (managedInstances[].preservedStateFromPolicy). Le MIG conserve automatiquement ces états préservés.

L'exemple suivant montre un MIG avec deux instances de VM qui utilisent un disque avec état défini dans une règle avec état applicable à chaque instance. Cet exemple ne comporte aucune configuration par instance.

État préservé généré à partir d'une règle avec état uniquement.

La figure précédente montre un MIG avec deux instances :

  • Le modèle d'instance définit un disque de démarrage portant le nom d'appareil boot-disk et un disque portant le nom d'appareil data-disk pour toutes les instances du MIG.
  • La règle avec état déclare data-disk comme étant avec état. Le disque de démarrage reste sans état. Notez que le disque portant le nom d'appareil data-disk doit être et est défini par le modèle d'instance.
  • Une fois la configuration appliquée, le groupe d'instances géré traduit la règle avec état en états préservés spécifiques à l'instance pour chaque instance gérée. Les états préservés indiquent au MIG de conserver le disque data-disk-1 pour l'instance de VM node-1 et le disque data-disk-2 pour l'instance node-2, car ces deux disques ont le nom d'appareil data-disk configuré dans leur règle avec état.
  • Cet exemple ne comporte aucune configuration par instance.

État préservé en fonction de la configuration par instance

Une configuration par instance spécifie les éléments qui doivent être préservés pour une VM particulière. Ces éléments n'ont pas besoin d'être définis dans le modèle d'instance du MIG.

Lors de l'application, le groupe d'instances géré traduit chaque configuration par instance en un état préservé (preservedStateFromConfig) pour l'instance correspondante.

L'exemple suivant montre un groupe d'instances géré avec deux instances de VM pour lesquelles des métadonnées et des disques avec état sont définis dans des configurations par instance (PIC) pour chaque instance. Cet exemple ne comporte aucune règle avec état.

État préservé généré à partir de configurations par instance uniquement.

Dans la figure précédente :

  • Le modèle d'instance définit un disque de démarrage portant le nom d'appareil boot-disk pour toutes les instances du MIG. Le disque de démarrage est sans état pour toutes les VM du MIG.
  • Les configurations par instance définissent les états à préserver pour deux instances du groupe : node-1 et node-2.
    • Pour l'instance node-1, la configuration par instance définit un disque my-legacy-1 portant le nom d'appareil legacy-disk et les métadonnées node-id:xyz273.
    • Pour l'instance node-2, la configuration par instance définit un disque my-logs-1 portant le nom d'appareil logs-disk et les métadonnées node-id:pqr851.
  • Une fois la configuration appliquée, le groupe d'instances géré traduit automatiquement les configurations par instance en états préservés pour chaque instance gérée. Les états préservés indiquent au MIG d'associer et de préserver les éléments suivants :
    • Disque persistant my-legacy-1 et métadonnées node-id:xyz273 pour la VM node-1
    • Disque persistant my-logs-1 et métadonnées node-id:pqr851 pour la VM node-2
  • Cet exemple ne comporte aucune règle avec état.

Notez que, dans cet exemple, les disques et les métadonnées à l'état préservé dans les configurations par instance ne sont pas définis par le modèle d'instance. Ils sont définis uniquement par les configurations par instance. En effet, la configuration que vous spécifiez dans une configuration par instance est spécifique à une VM particulière, ce qui signifie qu'elle n'a pas besoin d'être présente dans le modèle d'instance.

Les configurations par instance prévalent sur les règles avec état et les modèles d'instances

Vous pouvez configurer à la fois une règle avec état et une ou plusieurs configurations par instance dans un MIG. Par exemple, dans une règle avec état, vous pouvez définir des disques avec état présents dans toutes les instances, et dans les configurations par instance, vous pouvez définir des métadonnées spécifiques à une instance.

La configuration par instance d'une instance gérée est prioritaire par rapport à une configuration en conflit dans le modèle d'instance ou la règle avec état.

Si vous appliquez une configuration par instance pour ajouter un disque ou une interface réseau déjà définie dans une règle avec état, le MIG stocke la configuration avec état de ce disque ou de cette interface réseau dans l'état préservé de l'instance gérée issu de la configuration par instance (preservedStateFromConfig) et supprime les entrées en conflit de son état préservé de la règle (preservedStateFromPolicy). Le MIG doit actualiser la VM si le nouvel état préservé est différent de l'état précédent. L'actualisation peut entraîner une modification des métadonnées, une modification de l'adresse IP externe ou un échange de disque pour dissocier le disque de la dernière configuration de l'état préservé et associer le disque spécifié dans la nouvelle configuration d'état préservé.

Dans l'exemple suivant, la configuration par instance de l'instance de VM node-1 redéfinit :

  • l'état préservé du disque portant le nom d'appareil logs-disk, initialement défini dans la règle avec état ;
  • La valeur de la clé de métadonnées logmonth, initialement définie dans le modèle d'instance.

La configuration à partir de configurations par instance est prioritaire par rapport à la règle avec état et au modèle d'instance.

Dans la figure précédente :

  • Le modèle d'instance définit :
    • Trois disques pour toutes les instances du MIG, avec les noms d'appareils boot-disk, data-disk et logs-disk.
    • Les métadonnées communes à toutes les instances : logmonth:jan.
  • La règle avec état déclare que les disques portant les noms d'appareils data-disk et logs-disk sont avec état. Le disque de démarrage reste sans état.
  • Une configuration par instance pour l'instance node-1 redéfinit :
    • La configuration avec état pour un disque portant le nom d'appareil logs-disk. Cela demande au MIG d'associer le disque pd-logs-feb à node-1 avec le nom d'appareil logs-disk.
    • Les métadonnées, définies dans le modèle d'instance, avec la valeur de clé logmonth:jan : cette commande indique au MIG de définir la valeur logmonth:feb sur node-1.
  • Une fois que vous avez appliqué la configuration, le groupe d'instances géré traduit automatiquement la règle avec état et la configuration par instance en un état préservé spécifique à l'instance et stocké dans l'instance gérée.
    • L'état préservé de la règle indique au MIG de préserver le disque data-disk-1 pour la VM node-1. Notez que l'état préservé de la règle n'inclut pas de configuration avec état pour le disque portant le nom d'appareil logs-disk, car elle est remplacée par la configuration de logs-disk dans la configuration par instance.
    • L'état préservé de la configuration demande au groupe d'instances géré d'associer et de préserver le disque persistant logs-disk, et de définir et préserver les métadonnées logmonth:feb pour l'instance de VM node-1. Notez que l'état préservé de la configuration remplace la configuration de logs-disk de la règle avec état et les métadonnées logmonth:jan du modèle d'instance.

Comment la suppression d'une ressource d'une règle avec état affecte l'état préservé

Si vous supprimez une configuration de ressource de votre règle avec état, le MIG supprime automatiquement l'état préservé preservedStateFromPolicy correspondant pour toutes les instances gérées. Les ressources de calcul restent associées aux instances, mais ne sont plus avec état.

Dans l'exemple suivant, la suppression d'un disque de la règle avec état entraîne sa suppression des états préservés de la règle dans toutes les VM gérées. Ces disques restent associés à leurs VM, mais ils ne sont plus avec état et peuvent être supprimés et recréés lors de la prochaine recréation de VM.

Suppression d'un disque d'une règle avec état.

Si le même élément, par exemple un disque persistant avec état, est présent à la fois dans la règle avec état et dans une configuration par instance, et si vous supprimez sa configuration avec état de la règle avec état uniquement, le groupe d'instances géré ne le supprime pas de la configuration par instance. Pour la VM correspondante, la ressource configurée reste avec état.

Dans l'exemple suivant, la suppression du disque de la règle avec état n'entraîne pas la suppression du disque de la configuration par instance. Le disque reste avec état, car il fait toujours partie de l'état préservé de la configuration.

Suppression d'un disque d'une règle avec état lorsqu'une configuration par instance existe également.

Comment la suppression d'éléments de configurations par instance affecte l'état préservé

Si vous supprimez la configuration avec état d'une configuration par instance et appliquez la modification, le groupe d'instances géré supprime automatiquement la configuration avec état de l'état préservé de la configuration (preservedStateFromConfig) dans l'instance gérée correspondante. Les ressources de calcul qui ne font plus partie d'un état préservé deviennent sans état.

Comment la suppression de la configuration de disques avec état des configurations par instance affecte l'état préservé

Si vous supprimez un disque avec état d'une configuration par instance et appliquez la modification à l'instance de VM associée, le groupe d'instances géré effectue les opérations suivantes :

  • La configuration du disque est supprimée de l'état préservé de la configuration de l'instance.
  • Si un disque portant le même nom d'appareil est défini dans le modèle d'instance, mais n'est pas configuré dans une règle avec état, le disque reste associé à cette VM. Cependant, le disque devient sans état pour cette VM et peut être recréé en fonction de la configuration du modèle d'instance lors du prochain événement de recréation, d'autoréparation ou de mise à jour de VM.
  • Si un disque portant le même nom d'appareil n'est pas défini dans le modèle d'instance, il est automatiquement dissocié de la VM lors de l'application de la configuration par instance mise à jour à la VM associée, quel que soit la configuration en termes de suppression automatique.
  • Si un disque portant le même nom d'appareil est configuré dans une règle avec état, sa configuration avec état est traduite dans l'état préservé de la règle pour cette instance gérée, et le disque reste avec état.

Dans l'exemple suivant, la suppression d'un disque bleu et d'un disque vert de la configuration par instance de node-1 entraîne la suppression des deux disques de l'état préservé de l'instance gérée node-1 de la configuration.

  • Le disque bleu reste associé à l'instance de VM node-1, mais il est désormais sans état et peut être recréé lors de la prochaine recréation de VM en fonction de la configuration du modèle d'instance.
  • Le disque vert est dissocié de l'instance de VM node-1, car le modèle d'instance ne définit pas de disque portant le même nom d'appareil.

Suppression des disques d'une configuration par instance.

Comment la suppression des métadonnées avec état des configurations par instance affecte l'état préservé

La suppression des métadonnées avec état d'une configuration par instance et l'application de la modification entraînent la suppression immédiate des métadonnées avec état par le groupe d'instances géré de l'instance gérée correspondante :

  • Si vous avez défini des métadonnées avec la même clé dans le modèle d'instance, le MIG applique immédiatement la valeur du modèle d'instance à l'instance.
  • Si les métadonnées avec la même clé ne sont pas définies dans le modèle d'instance, le MIG supprime immédiatement la valeur de la clé de l'instance.

Dans l'exemple suivant, la suppression des métadonnées mode:dev et id:xyz273 de la configuration par instance de node-1 entraîne la suppression automatique des deux des paires clé/valeur de l'état préservé de l'instance gérée node-1, de la configuration.

  • mode:dev est remplacé par le mode:test du modèle d'instance dans la VM.
  • id:xyz273 est immédiatement supprimé de la VM, car le modèle d'instance ne dispose pas de métadonnées avec la même clé id pour le remplacer.

Suppression des métadonnées d'une configuration par instance.

Comment la suppression de la configuration d'adresses IP avec état des configurations par instance affecte l'état préservé

La suppression de la configuration d'adresse IP interne d'une configuration par instance rend l'adresse IP de cette VM sans état. Aucune modification automatisée n'est effectuée sur cette VM, mais l'adresse IP peut changer une fois la VM recréée, mise à jour ou autoréparée.

Recourir à une règle avec état

Si vous supprimez la configuration avec état d'une ressource d'une configuration par instance et que vous avez configuré la même ressource dans la règle avec état, la ressource reste avec état, conformément à la règle avec état.

Le MIG supprime automatiquement la configuration avec état de l'élément de preservedStateFromConfig et l'ajoute à preservedStateFromPolicy pour l'instance gérée correspondante.

Dans l'exemple suivant, la suppression d'un disque de la configuration par instance de node-1 n'entraîne pas la suppression du disque de la règle avec état. Le disque reste avec état, conformément à la règle avec état :

  • Le groupe d'instances géré supprime automatiquement le disque de preserveStateFromConfig pour l'instance gérée node-1, car le disque ne fait plus partie de sa configuration par instance.
  • Le groupe d'instances géré ajoute automatiquement le disque à preserveStateFromPolicy pour l'instance gérée node-1, car la configuration de la règle avec état est toujours en place et n'est plus en conflit avec la configuration par instance node-1.

Suppression d'un disque d'une configuration par instance, mais pas d'une règle avec état.

Votre avis

Nous souhaitons en savoir plus sur vos cas d'utilisation, les défis que vous rencontrez ou vos impressions sur les MIG avec état. Nous vous invitons à nous faire part de vos commentaires à l'adresse suivante : mig-discuss@google.com.

Étapes suivantes