La configuration des disques persistants avec état permet de bénéficier de l'autoréparation des instances de VM et de mises à jour automatisées tout en préservant l'état des disques.
Vous pouvez configurer n'importe quel disque défini dans le modèle d'instance de sorte qu'il soit avec état pour toutes les instances d'un groupe d'instances géré (MIG) en ajoutant le nom d'appareil de ce disque à la règle avec état du MIG.
Vous pouvez également configurer individuellement des disques persistants avec état pour les instances d'un MIG en définissant des configurations par instance. Ces disques n'ont pas besoin d'être définis dans le modèle d'instance.
Avant de commencer
- Consultez les pages expliquant quand utiliser des groupes d'instances gérés avec état et le fonctionnement des groupes d'instances gérés (MIG) avec état.
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification est le processus permettant 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:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Vous ne pouvez pas utiliser l'autoscaling si votre MIG dispose d'une configuration avec état.
- Si vous souhaitez utiliser des mises à jour progressives automatiques, vous devez définir la méthode de remplacement sur
RECREATE
. - Pour les MIG régionaux avec état, vous devez désactiver la redistribution proactive (définissez le type de redistribution sur
NONE
) pour empêcher la suppression d'instances avec état lors de redistributions interzones automatiques. Si vous utilisez une configuration sur toutes les instances pour remplacer les propriétés d'un modèle d'instance, vous ne pouvez pas spécifier ces propriétés à la fois dans une configuration par instance et dans une configuration sur toutes les instances du groupe.
Un MIG régional avec état n'orchestre pas automatiquement le basculement interzone. Lorsque vous utilisez un MIG régional, vous pouvez rendre votre application avec état résiliente en cas de défaillance d'une zone en déployant des instances dupliquées redondantes dans plusieurs zones et en tirant parti de la fonctionnalité de réplication des données de votre application.
- Vous pouvez réparer un disque de démarrage corrompu en le recréant à partir de son image d'origine. L'autoréparation effectue ces opérations automatiquement.
- Vous pouvez mettre à jour un disque de démarrage vers la dernière image avec de nouvelles versions et des correctifs de sécurité.
Dans la console Google Cloud, accédez à la page Groupes d'instances.
Sélectionnez le projet et cliquez sur Continuer.
Cliquez sur Créer un groupe d'instances.
Sélectionnez Nouveau groupe d'instances géré (avec état).
Renseignez un Nom pour le groupe d'instances.
Sélectionnez un modèle d'instance. Si aucun modèle d'instance n'est disponible, créez-en un.
Dans la section Nombre d'instances, spécifiez le nombre d'instances à inclure dans le groupe.
La section Configuration avec état affiche les disques spécifiés dans le modèle d'instance. Cliquez sur un disque pour modifier sa configuration avec état.
- Sous Avec état, sélectionnez Oui.
Dans le menu déroulant Lors de la suppression permanente de l'instance, sélectionnez l'action à effectuer sur le disque avec état lorsque l'instance de VM est supprimée. Les options disponibles sont les suivantes :
- Dissocier le disque : (par défaut) Ne supprimez jamais le disque. Dissociez le disque lorsque la VM est supprimée.
- Supprimer le disque : supprimez le disque lorsque sa VM est définitivement supprimée du groupe d'instances, par exemple lorsque l'instance gérée est supprimée manuellement ou lorsque la taille du groupe est réduite.
Une fois que vous avez terminé la configuration avec état, cliquez sur Terminé.
Cliquez sur Créer.
INSTANCE_GROUP_NAME
: nom du groupe d'instances géré à créer.INSTANCE_TEMPLATE
: nom du modèle d'instance à utiliser lors de la création d'instances.SIZE
: nombre initial de VM dont vous avez besoin dans ce groupe.DEVICE_NAME
: nom de l'appareil d'un disque spécifié dans le modèle d'instance.DELETE_RULE
: valeur qui indique ce qui doit arriver à un disque avec état lorsqu'une VM est supprimée. Les options disponibles sont les suivantes :never
: (Par défaut) Ne supprimez jamais le disque. À la place, dissociez le disque lorsque sa VM est supprimée.on-permanent-instance-deletion
: supprimez le disque lorsque son instance de VM est définitivement supprimée du groupe d'instances, par exemple lorsque l'instance gérée est supprimée manuellement ou lorsque la taille du groupe est réduite.
Quelle que soit la valeur de la règle de suppression, les disques avec état sont toujours conservés lors des opérations d'autoréparation, de mise à jour et de recréation de VM.
Créez un modèle d'instance avec un disque de démarrage sans état basé sur l'image
img-example-db-v01
, avec un système d'exploitation et une base de données préinstallés, et avec un disque de données avec état :gcloud compute instance-templates create example-database-template-v01 \ --image img-example-db-v01 \ --create-disk device-name=data-disk,mode=rw,image=empty10GBext4
L'option
--create-disk
donne l'ordre au MIG de :- créer un disque de 10 Go pour chaque instance de VM à partir d'une image ext4 vide, préparée à l'avance ;
- associer le disque à sa VM en mode lecture/écriture à l'aide du nom d'appareil
data-disk
.
Créer un MIG à partir du modèle d'instance et définir le disque de données avec état :
gcloud compute instance-groups managed create example-database-group \ --template example-database-template-v01 \ --base-instance-name shard \ --size 12 \ --stateful-disk device-name=data-disk,auto-delete=on-permanent-instance-deletion
Le nom de l'appareil
data-disk
est issu du modèle d'instance. Le disque de données est configuré pour être supprimé avec l'instance de VM lorsque la VM est définitivement supprimée (en raison d'une suppression manuelle de l'instance ou d'une diminution manuelle de la taille du groupe). Le disque de données est conservé lors de l'autoréparation, des mises à jour et de la recréation de VM.Vérifiez que le disque de données est configuré dans la règle avec état :
gcloud compute instance-groups managed describe example-database-group baseInstanceName: shard ... name: example-database-group ... statefulPolicy: preservedState: disks: data-disk: autoDelete: ON_PERMANENT_INSTANCE_DELETION ...
Vous pouvez constater que la stratégie avec état déclare les disques avec le nom d'appareil
data-disk
comme étant avec état, avec une règle pour supprimer ces disques lors de la suppression permanente d'une VM.PROJECT
: ID du projet pour la requête.ZONE
: zone où se trouve le MIG (s'applique à un MIG zonal).- Pour un MIG régional, remplacez
zones/ZONE
parregions/REGION
et spécifiez la région du MIG.
- Pour un MIG régional, remplacez
NAME
: nom du MIG à créer.TEMPLATE
: nom du modèle d'instance à utiliser lors de la création d'instances.SIZE
: nombre initial d'instances dont vous avez besoin dans ce groupe.DEVICE_NAME
: nom de l'appareil d'un disque spécifié dans le modèle d'instance.DELETE_RULE
: valeur qui indique ce qui doit arriver au disque avec état lorsque l'instance de VM est supprimée. Les options disponibles sont les suivantes :never
: (Par défaut) Ne supprimez jamais le disque. Dissociez le disque lorsque la VM est supprimée.on_permanent_instance_deletion
: supprimez le disque avec état lorsque sa VM est définitivement supprimée du groupe d'instances, par exemple lorsque l'instance gérée est supprimée manuellement ou lorsque la taille du groupe est réduite.
Créez un modèle d'instance avec un disque de démarrage sans état basé sur l'image
img-example-db-v01
, avec un système d'exploitation et une base de données préinstallés, et avec un disque de données avec état, à l'aide de la méthodeinstanceTemplates.insert
:POST https://compute.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates { "name": "example-database-template-v01", "properties": { "machineType":"e2-standard-2", "disks": [ { "boot": true, "deviceName": "boot-disk", "initializeParams": { "sourceImage": "projects/example-project/global/images/mg-example-db-v01" } }, { "deviceName": "data-disk", "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/example-project/global/images/empty10GBext4" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ] } }
Le disque de données du modèle d'instance porte le nom d'appareil
data-disk
et est configuré pour être créé à partir d'une image ext4 vide, préparée au préalable, et doit être associé en mode lecture/écriture.Créez un MIG à partir du modèle d'instance et définissez le disque de données comme étant avec état à l'aide de la méthode
instanceGroupManagers.insert
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers { "name": "example-database-group", "baseInstanceName": "shard", "versions": [ { "instanceTemplate": "global/instanceTemplates/example-database-template-v01" } ], "targetSize": 12, "statefulPolicy": { "preservedState": { "disks": { "data-disk": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" } } } } }
Le MIG crée 12 instances, chacune avec un disque avec les propriétés suivantes :
- Un nom d'appareil,
data-disk
, issu du modèle d'instance. - Une règle de suppression permettant de supprimer le disque de données lors de la suppression de la VM (en raison d'une suppression manuelle de l'instance ou d'une réduction manuelle de la taille du groupe).
- Une entrée à l'état préservé de la règle (
preservedStateFromPolicy
) de chaque instance gérée afin que le disque de données soit conservé lors de l'autoréparation, des mises à jour et de la recréation d'instance.
- Un nom d'appareil,
Utilisez la méthode
instanceGroupManagers.get
pour vérifier que le disque de données est configuré dans la règle avec état de la nouvelle ressourceinstanceGroupManagers
:GET https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-group
{ "name": "example-database-group", "baseInstanceName": "shard", ... "statefulPolicy": { "preservedState": { "disks": { "data-disk": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" } } } } ... }
Vous pouvez constater que la règle avec état déclare les disques avec le nom d'appareil
data-disk
comme étant avec état, avec une règle pour supprimer ces disques lors de la suppression permanente d'une instance.- Ajoutez des disques définis dans le modèle d'instance à la règle avec état d'un MIG existant pour les déclarer avec état. Cela marque les disques avec le nom d'appareil donné comme étant avec état pour toutes les instances existantes et futures du MIG.
- Mettez à jour la règle avec état pour modifier la configuration avec état des disques.
Dans la console Google Cloud, accédez à la page Groupes d'instances.
Cliquez sur le nom du groupe d'instances dans lequel vous souhaitez spécifier une configuration avec état pour le disque.
Cliquez sur Modifier pour modifier le groupe d'instances géré.
Sous Configuration avec état, développez le disque que vous souhaitez définir avec état.
- Sous Avec état, sélectionnez Oui.
Dans le menu déroulant Lors de la suppression permanente de l'instance, sélectionnez l'action à effectuer sur le disque avec état lorsque l'instance de VM est supprimée.
- Dissocier le disque : (par défaut) Ne supprimez jamais le disque. Dissociez le disque lorsque la VM est supprimée.
Supprimer le disque : supprimez le disque lorsque sa VM est définitivement supprimée du groupe d'instances, par exemple lorsque l'instance gérée est supprimée manuellement ou lorsque la taille du groupe est réduite.
Après avoir mis à jour la configuration avec état, cliquez sur Terminé.
Cliquez sur Enregistrer pour terminer la mise à jour.
NAME
: nom du groupe d'instances géré à mettre à jour.DEVICE_NAME
: nom de l'appareil d'un disque spécifié dans le modèle d'instance.DELETE_RULE
: valeur qui indique ce qui doit arriver au disque avec état lorsque l'instance de VM est supprimée. Les options disponibles sont les suivantes :never
: (Par défaut) Ne supprimez jamais le disque. Dissociez le disque lorsque l'instance est supprimée.on-permanent-instance-deletion
: supprimez le disque lorsque son instance est définitivement supprimée du groupe d'instances, par exemple lorsque l'instance gérée est supprimée manuellement ou lorsque la taille du groupe est réduite.
Mettez à jour le MIG pour définir le disque de données avec état à l'aide de la commande suivante :
gcloud compute instance-groups managed update example-database-group \ --stateful-disk device-name=data-disk,auto-delete=never
Par conséquent, le MIG applique les mises à jour de configuration des règles avec état automatiquement et de manière asynchrone aux disques de données de toutes les instances. Les disques de données sont désormais conservés lors de l'autoréparation, des mises à jour et de la recréation d'instances. Les disques de données sont dissociés lors de la suppression de l'instance, car la règle
auto-delete
est définie surnever
.Vérifiez que le disque de données est configuré dans la règle avec état en exécutant la commande
gcloud compute instance-groups managed describe example-database-group
.PROJECT
: ID du projet pour la requête.ZONE
: zone où se trouve le MIG (s'applique à un MIG zonal).- Pour un MIG régional, remplacez
zones/ZONE
parregions/REGION
et spécifiez la région du MIG.
- Pour un MIG régional, remplacez
NAME
: nom du MIG à mettre à jour.DEVICE_NAME
: nom de l'appareil d'un disque, spécifié dans le modèle d'instance, pour lequel vous souhaitez mettre à jour la configuration avec état.DELETE_RULE
: valeur qui indique ce qui doit arriver au disque avec état lorsque l'instance de VM est supprimée. Les options disponibles sont les suivantes :never
: (Par défaut) Ne supprimez jamais le disque. Dissociez le disque lorsque l'instance est supprimée.on-permanent-instance-deletion
: supprimez le disque avec état lorsque son instance est définitivement supprimée du groupe d'instances, par exemple lorsque l'instance est supprimée manuellement ou lorsque la taille du groupe est réduite.
Appliquez un correctif au MIG pour définir le disque de données avec état :
PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-group { "statefulPolicy": { "preservedState": { "disks": { "data-disk": {"autoDelete": "NEVER" } } } } }
Le MIG applique cette configuration avec état automatiquement et de manière asynchrone aux disques de données de toutes les instances. Les disques de données sont désormais conservés lors de l'autoréparation, des mises à jour et de la recréation d'instances. Les disques de données sont dissociés lors de la suppression de l'instance, car la règle
autoDelete
est définie surNEVER
.Vérifiez que le disque de données est configuré dans la règle avec état en affichant la ressource
instanceGroupManagers
, renvoyée par la méthodeinstanceGroupManagers.get
.- Si vous modifiez l'architecture de votre application pour supprimer l'état du disque.
- Si vous avez configuré le disque avec un état par erreur et que vous souhaitez l'annuler.
Dans la console Google Cloud, accédez à la page Groupes d'instances.
Cliquez sur le nom du groupe d'instances duquel vous souhaitez supprimer la configuration avec état pour les disques.
Cliquez sur Modifier pour modifier le groupe d'instances géré.
Sous Configuration avec état, développez les disques avec état que vous souhaitez définir sans état.
- Définissez l'option Avec état sur Non.
- Cliquez sur OK.
Une fois les modifications effectuées, cliquez sur Enregistrer.
NAME
: nom du MIG à mettre à jour.DEVICE_NAME
: nom de l'appareil d'un disque à supprimer de la règle avec état et à traiter comme sans état. Vous pouvez indiquer un ou plusieurs noms d'appareils dans la liste.PROJECT
: ID du projet pour la requête.ZONE
: zone où se trouve le MIG (s'applique à un MIG zonal).- Pour un MIG régional, remplacez
zones/ZONE
parregions/REGION
et spécifiez la région du MIG.
- Pour un MIG régional, remplacez
NAME
: nom du MIG à mettre à jour.DEVICE_NAME
: nom de l'appareil du disque que vous souhaitez supprimer de la règle avec état. La spécification d'une valeurnull
entraîne la suppression de la configuration avec état pour ce disque. Vous pouvez indiquer un ou plusieurs noms d'appareils à supprimer.- Supprimez la configuration avec état du disque de la règle avec état. Cela rend les disques avec le nom d'appareil donné sans état.
- Dissociez les disques des VM si vous souhaitez les conserver.
- Déployez un nouveau modèle d'instance qui ne définit plus le disque avec le nom d'appareil donné.
- migrer des charges de travail existantes (apporter des disques existants) de VM autonomes vers des MIG avec état pour bénéficier de l'autoréparation et des mises à jour faciles ;
- restaurer les sauvegardes de disques, configurées individuellement pour les VM ;
- associer temporairement des disques supplémentaires avec état à une VM spécifique pour tester, déboguer ou copier des données.
- Créez un modèle d'instance avec une configuration commune pour toutes les instances de VM.
- Dissociez les disques de données des instances autonomes et supprimez ces instances. Vous pouvez également dissocier les disques de démarrage s'ils contiennent un état qui doit être conservé.
- Créez un MIG vide à l'aide du modèle d'instance créé précédemment.
Créez des instances dans le MIG avec les noms appropriés et les disques associés de l'étape précédente. Le MIG répond à votre requête avec les actions suivantes :
- Crée une VM à partir du modèle d'instance à l'aide du nom d'instance fourni.
- Un MIG régional crée la VM dans la même zone que le disque. Si le disque est régional, le MIG régional crée la VM dans l'une des zones dupliquées du disque.
- Crée une configuration par instance avec la configuration avec état fournie pour les disques.
- Associe les disques à la nouvelle instance.
- Crée une VM à partir du modèle d'instance à l'aide du nom d'instance fourni.
NAME
: nom du MIG dans lequel vous devez créer une instance.VM_NAME
: nom de la nouvelle instance à créer.ZONE
: zone où se trouve le MIG (s'applique à un MIG zonal).REGION
: région où se trouve le MIG (s'applique à un MIG régional).DEVICE_NAME
: nom de l'appareil à utiliser pour associer le disque.DISK
: URI d'un disque persistant existant à associer auDEVICE_NAME
spécifié au formatprojects/project-id/zones/zone/disks/disk-name
pour un disque zonal etprojects/project-id/regions/region/disks/disk-name
pour un disque régional.MODE
: spécifie le mode du disque. Les options suivantes sont acceptées :ro
: Lecture seule.rw
: (Par défaut) Lecture/Écriture.
DELETE_RULE
: valeur qui indique ce qui doit arriver à un disque avec état lorsqu'une instance de VM est supprimée. Les options disponibles sont les suivantes :never
: (Par défaut) Ne supprimez jamais le disque. À la place, dissociez le disque lorsque son instance est supprimée.on-permanent-instance-deletion
: supprimez le disque avec état lorsque son instance est définitivement supprimée du groupe d'instances, par exemple lorsque l'instance est supprimée manuellement ou lorsque la taille du groupe est réduite.
Quelle que soit la valeur de la règle de suppression, les disques avec état sont toujours conservés lors des opérations d'autoréparation, de mise à jour et de recréation d'instances.
- Arrêtez la VM,
db-instance
, pendant un intervalle de maintenance. - Créez un modèle d'instance nommé
db-template
à l'aide de la configurationdb-instance
. - Dissociez
db-data-disk-1
dedb-instance
et supprimezdb-instance
. - Créez un MIG vide,
example-database-mig
, à partir dedb-template
, puis configurez l'autoréparation. Créez une instance gérée avec le nom
db-instance
d'origine et associezdb-data-disk-1
en tant que disque avec état :gcloud compute instance-groups managed create-instance example-database-mig \ --instance db-instance \ --zone us-east1-c \ --stateful-disk device-name=data-disk,source=projects/example-project/zones/us-east1-c/disks/db-data-disk-1,auto-delete=never
La commande crée une instance
db-instance
dans le MIG, crée une configuration par instance correspondante avec un disque avec étatdb-data-disk-1
, puis associe le disque à la nouvelle VM en utilisantdata-disk
comme nom d'appareil.PROJECT_ID
: ID du projet pour la requête.ZONE
: zone où se trouve le MIG (s'applique à un MIG zonal).- Pour un MIG régional, remplacez
zones/ZONE
parregions/REGION
et spécifiez la région du MIG.
- Pour un MIG régional, remplacez
NAME
: nom du MIG dans lequel créer l'instance.VM_NAME
: nom de l'instance à créer.DEVICE_NAME
: nom de l'appareil à utiliser pour associer le disque.DISK
: URI d'un disque persistant existant à associer auDEVICE_NAME
spécifié au formatprojects/project-id/zones/zone/disks/disk-name
pour un disque zonal ouprojects/project-id/regions/region/disks/disk-name
pour un disque régional.MODE
: spécifie le mode du disque. Les options suivantes sont acceptées :READ_ONLY
: Lecture seule.READ_WRITE
: (Par défaut) Lecture/Écriture.
DELETE_RULE
: valeur qui indique ce qui doit arriver à un disque avec état lorsqu'une VM est supprimée. Les options disponibles sont les suivantes :never
: (Par défaut) Ne supprimez jamais le disque. À la place, dissociez le disque lorsque sa VM est supprimée.on-permanent-instance-deletion
: supprimez le disque avec état lorsque son instance est définitivement supprimée du groupe d'instances, par exemple lorsque l'instance est supprimée manuellement ou lorsque la taille du groupe est réduite.
Quelle que soit la valeur de la règle de suppression, les disques avec état sont toujours conservés lors des opérations d'autoréparation, de mise à jour et de recréation d'instances.
- Arrêtez la VM,
db-instance
, pendant un intervalle de maintenance. - Créez un modèle d'instance nommé
db-template
à l'aide de la configurationdb-instance
. - Dissociez
db-data-disk-1
dedb-instance
et supprimezdb-instance
. - Créez un MIG vide,
example-database-mig
, à partir dedb-template
, puis configurez l'autoréparation. Créez une instance avec le nom
db-instance
d'origine et associezdb-data-disk-1
en tant que disque avec état :POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/createInstances { "instances": [ { "name": "db-instance", "preservedState" : { "disks": { "data-disk" : { "source": "projects/example-project/zones/us-east1-c/disks/db-data-disk-1", "mode": "READ_WRITE", "autoDelete": "never" } } } } ] }
La méthode crée une instance
db-instance
dans le MIG, crée une configuration par instance correspondante avec un disque avec étatdb-data-disk-1
, puis associe le disque à la nouvelle instance, en utilisantdata-disk
comme nom d'appareil.- Ajouter un disque avec état depuis l'extérieur d'un MIG à une VM de ce MIG.
- Déclarer un disque précédemment sans état comme étant avec état pour une VM dans un MIG.
- Remplacer un disque avec état par un autre disque pour une VM dans un MIG.
NAME
: nom du groupe d'instances géré.VM_NAME
: nom de l'instance de VM pour laquelle configurer des disques avec état.DEVICE_NAME
: nom d'appareil utilisé pour associer le disque.DISK
: URI d'un disque persistant existant à associer auDEVICE_NAME
spécifié, au formatprojects/project-id/zones/zone/disks/disk-name
pour un disque zonal etprojects/project-id/regions/region/disks/disk-name
pour un disque régional.La sous-option
source=DISK
est facultative si l'appareil est déjà défini dans la configuration par instance de l'instance. Sinon, vous devez la renseigner.Si elle n'est pas spécifiée, l'URI du disque actuellement configuré reste inchangé.
MODE
: spécifie le mode du disque. Vous ne pouvez spécifiermode
que si vous spécifiez égalementsource
. Les options suivantes sont acceptées :ro
: Lecture seule.rw
: (Par défaut) Lecture/Écriture.
Si cette valeur est omise, la valeur par défaut est définie pour une nouvelle configuration de disque avec état. La valeur reste inchangée dans une configuration existante.
DELETE_RULE
: valeur qui indique ce qui doit arriver à un disque avec état lorsqu'une VM est supprimée. Les options disponibles sont les suivantes :never
: (Par défaut) Ne supprimez jamais le disque. À la place, dissociez le disque lorsque son instance est supprimée.on-permanent-instance-deletion
: supprimez le disque avec état lorsque son instance est définitivement supprimée du groupe d'instances, par exemple lorsque l'instance est supprimée manuellement ou lorsque la taille du groupe est réduite.
Si cette valeur est omise, la valeur par défaut est définie pour une nouvelle configuration de disque avec état. La valeur reste inchangée dans une configuration existante.
Quelle que soit la valeur de la règle de suppression, les disques avec état sont toujours conservés lors des opérations d'autoréparation, de mise à jour et de recréation d'instances.
MINIMAL_ACTION
: effectue au minimum l'action spécifiée lorsque la mise à jour de la configuration par instance est effectivement appliquée à l'instance. Doit être utilisé avec l'option--update-instance
. La valeur doit être l'une des suivantes :none
: aucune action.refresh
: appliquer les mises à jour qu'il est possible d'appliquer sans arrêter la VM.restart
: arrêter la VM, puis la redémarrer.replace
: recréer la VM.
Si cet élément n'est pas spécifié, l'action la moins perturbatrice requise par la mise à jour est utilisée.
- Met à jour la configuration par instance de
db-instance-1
:- Met à jour la source du disque avec le nom d'appareil
data-disk
dedata-disk-1
(dernière configuration) versdata-disk-2
(nouvelle configuration). - Conserve la règle de suppression automatique de ne jamais supprimer le disque, car le paramètre
auto-delete
est omis dans l'option--stateful-disk
et, par défaut, la règle de suppression estnever
.
- Met à jour la source du disque avec le nom d'appareil
- Applique immédiatement la mise à jour de la configuration par instance à la VM
db-instance-1
, car l'option--update-instance
est incluse. Le MIG détachedata-disk-1
et associedata-disk-2
sous le même nom d'appareil,data-disk
. - Comme l'action minimale est définie sur
restart
, le MIG redémarre l'instancedb-instance-1
pour mettre à jour la VM, ce qui permet à l'application de base de données de commencer à utiliser le nouveau disque. PROJECT_ID
: ID du projet pour la requête.ZONE
: zone où se trouve le MIG (s'applique à un MIG zonal).- Pour un MIG régional, remplacez
zones/ZONE
parregions/REGION
et spécifiez la région du MIG.
- Pour un MIG régional, remplacez
NAME
: nom du MIG.VM_NAME
: nom de la VM pour laquelle configurer des disques avec état.DEVICE_NAME
: nom d'appareil utilisé pour associer le disque.DISK
: URI d'un disque persistant existant à associer auDEVICE_NAME
spécifié, au formatprojects/project-id/zones/zone/disks/disk-name
pour un disque zonal etprojects/project-id/regions/region/disks/disk-name
pour un disque régional.Le champ
"source": "DISK"
est facultatif si l'appareil est déjà défini dans la configuration par instance de l'instance. Sinon, vous devez la renseigner.Si le champ
source
n'est pas défini, l'URI du disque actuellement configuré reste inchangé.MODE
: (Facultatif) Spécifie le mode du disque.mode
ne peut être spécifié que sisource
est spécifié. Les options suivantes sont acceptées :READ_ONLY
: Lecture seule.READ_WRITE
: (Par défaut) Lecture/Écriture.
Si cette valeur est omise, la valeur par défaut est définie pour une nouvelle configuration de disque avec état. La valeur reste inchangée dans une configuration existante.
DELETE_RULE
: (Facultatif) Valeur qui indique ce qui doit arriver à un disque avec état lorsqu'une VM est supprimée. Les options disponibles sont les suivantes :- Jamais : (Par défaut) Ne supprimez jamais le disque. À la place, dissociez le disque lorsque son instance est supprimée.
on-permanent-instance-deletion
: supprimez le disque avec état lorsque son instance est définitivement supprimée du groupe d'instances, par exemple lorsque l'instance est supprimée manuellement ou lorsque la taille du groupe est réduite.
Si le champ
autoDelete
est omis, la valeur par défaut est définie pour une nouvelle configuration de disque avec état. La valeur reste inchangée dans une configuration existante.Quelle que soit la valeur de la règle de suppression, les disques avec état sont toujours conservés lors des opérations d'autoréparation, de mise à jour et de recréation d'instances.
FINGERPRINT
: (Facultatif) Empreinte de la configuration donnée, si celle-ci existe déjà. Elle est utilisée pour le verrouillage optimiste. Pour afficher la dernière empreinte, effectuez une requêteget()
pour récupérer la ressource.- Met à jour
source
pour un disque avec le nom d'appareildata-disk
dedata-disk-1
(dernière configuration) versdata-disk-2
(nouvelle configuration). - Conserve les paramètres
mode
etautoDelete
tels quels, car ils sont omis dans la requête. - Si vous modifiez l'architecture de votre application pour supprimer l'état du disque.
- Si vous configurez le disque avec un état par erreur et que vous souhaitez l'annuler.
- Si le disque n'est pas défini dans le modèle d'instance, le MIG dissocie le disque.
- Le MIG ne supprime pas le disque lorsque vous supprimez sa configuration de la configuration par instance, quelle que soit la règle de suppression automatique de la configuration.
- Si le disque est défini par le modèle d'instance, le MIG le traite comme sans état, ce qui signifie que le MIG recrée le disque à partir de sa source dans le modèle d'instance lors des événements ultérieurs de recréation, de mise à jour ou d'autoréparation d'instances.
NAME
: nom du MIG.VM_NAME
: nom de la VM de laquelle vous souhaitez supprimer la configuration avec état.DEVICE_NAME
: nom d'appareil utilisé pour associer le disque.MINIMAL_ACTION
: effectue au moins l'action spécifiée lors de la mise à jour de la VM avec sa configuration par instance. Ne peut être utilisé qu'avec--update-instance
. La valeur doit correspondre à l'un des éléments suivants :none
: aucune action.refresh
: appliquer les mises à jour qu'il est possible d'appliquer sans arrêter la VM.restart
: arrêter la VM, puis la redémarrer.replace
: recréer la VM.
Si cet élément n'est pas spécifié, l'action la moins perturbatrice requise par la mise à jour est utilisée.
- Supprime la configuration du disque portant le nom d'appareil
boot-disk
de la configuration par instance pournode-1
. - Applique immédiatement la mise à jour de la configuration par instance à la VM
node-1
, car l'option--update-instance
est incluse. Le MIG supprime le disque de démarragepreservedStateFromConfig
de l'instance gérée et le traite comme sans état, ce qui signifie qu'il recrée le disque à partir de son image de démarrage dans le modèle d'instance lors d'événements ultérieurs de recréation, de mise à jour ou d'autoréparation d'instances. PROJECT_ID
: ID du projet pour la requête.ZONE
: zone où se trouve le MIG (s'applique à un MIG zonal).- Pour un MIG régional, remplacez
zones/ZONE
parregions/REGION
et spécifiez la région du MIG.
- Pour un MIG régional, remplacez
NAME
: nom du MIG.VM_NAME
: nom de la VM à partir de laquelle supprimer la configuration avec état.DEVICE_NAME
: nom d'appareil utilisé pour associer le disque.FINGERPRINT
: l'empreinte de la configuration donnée, si celle-ci existe déjà. Elle est utilisée pour le verrouillage optimiste. Pour afficher la dernière empreinte, effectuez une requêteget()
pour récupérer la ressource.Appelez la méthode
patchPerInstanceConfigs
pour les instances, par exemple pournode-1
, avec une valeurnull
pour le disque de démarrage :POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "node-1", "preservedState" : { "disks": { "boot-disk" : null } } } ] }
La méthode supprime la configuration du disque avec le nom d'appareil
boot- disk
de la configuration par instance pournode-1
. La mise à jour de la configuration n'est pas encore appliquée à l'instance de VMnode-1
. La mise à jour de la configuration sera appliquée à la prochaine recréation ou mise à jour de l'instance.Pour appliquer la mise à jour de la configuration par instance à l'instance de VM
node-1
, appelez la méthodeinstanceGroupManagers.applyUpdatesToInstances
de l'instance :POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group/applyUpdatesToInstances { "instances": ["/zones/us-east1-c/instances/node-1"] }
Le MIG supprime le disque de démarrage de
preservedStateFromConfig
pour l'instancenode-1
et le traite comme sans état. Cela signifie que le MIG recrée le disque à partir de son image de démarrage dans le modèle d'instance lors des événements ultérieurs de recréation, de mise à jour ou d'autoréparation d'instances.- Configurez des métadonnées avec état pour les VM dans un MIG.
- Découvrez comment appliquer, afficher et supprimer une configuration avec état.
- Obtenez des informations sur un MIG spécifique et ses instances gérées, y compris l'état et les propriétés de la VM.
- Apprenez-en plus sur les MIG et l'utilisation d'instances gérées.
Terraform
Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
Pour en savoir plus, consultez Set up authentication for a local development environment.
REST
Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.
Limites
Un MIG avec des disques avec état présente les limites suivantes :
Un MIG doté d'une configuration avec état (un MIG avec état) présente les limites suivantes :
Quand utiliser des disques persistants avec état
Utilisez des disques persistants avec état pour tirer parti de l'autoréparation de la VM et des mises à jour automatisées tout en conservant les données sur les disques. Pour en savoir plus, consultez les cas d'utilisation des MIG avec état.
Lorsque vous configurez des disques avec état, ces disques sont conservés via l'autoréparation, les mises à jour et la recréation des instances de VM. Mais cela signifie également que les disques avec état ne peuvent pas être recréés à partir de l'image d'origine ou mis à jour vers une nouvelle image.
Nous vous recommandons de laisser vos disques de démarrage sans état.
Garder le disque de démarrage sans état présente les avantages suivants :
Pour en savoir plus, découvrez comment l'autoréparation et la mise à jour gèrent l'état préservé.
Configurer des disques persistants avec état pour toutes les VM d'un groupe d'instances géré
Configurez tous les disques définis dans un modèle d'instance avec état en ajoutant le nom de l'appareil de ce disque à la règle avec état du MIG. Le MIG considère que les disques portant ce nom d'appareil sont avec état pour toutes les instances de VM existantes et futures.
Configurer des disques avec état lors de la création d'un groupe d'instances géré
Console
gcloud
Pour spécifier les disques d'un modèle d'instance qui doivent être avec état lors de la création d'un MIG, utilisez l'option
--stateful-disk
avec la commandegcloud compute instance-groups managed create
:gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --template INSTANCE_TEMPLATE \ --size SIZE \ --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]
Remplacez les éléments suivants :
Exemple
Vous souhaitez déployer une base de données avec 12 segments, chacun avec un disque de démarrage sans état contenant le système d'exploitation et les fichiers binaires de la base de données, et chacun avec un disque de données avec état. Procédez comme suit :
Terraform
Si vous n'avez pas encore créé de modèle d'instance, qui spécifie le type de machine, l'image de disque de démarrage, le réseau et les autres propriétés de VM que vous souhaitez pour chaque VM de votre MIG, créez Un modèle d'instance.
L'exemple suivant crée un MIG zonal avec un disque avec état. Pour spécifier le disque du modèle d'instance qui doit être avec état lors de la création d'un MIG, incluez le bloc
stateful_disk
. Pour en savoir plus sur la ressource utilisée dans l'exemple, consultez la section consacrée à la ressourcegoogle_compute_instance_group_manager
. Pour créer un MIG régional, utilisez la ressourcegoogle_compute_region_instance_group_manager
.Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.
REST
Pour spécifier les disques du modèle d'instance qui doivent être avec état lors de la création d'un MIG, incluez-les dans le champ
statefulPolicy
du corps de la requête de la méthodeinstanceGroupManagers.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers { "name": "NAME", "versions": [ { "instanceTemplate": "global/instanceTemplates/TEMPLATE" } ], "targetSize": SIZE, "statefulPolicy": { "preservedState": { "disks": { "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }, "DEVICE_NAME": {"autoDelete": "DELETE_RULE" } } } } }
Remplacez l'élément suivant :
Exemple
Vous souhaitez déployer une base de données avec 12 segments, chacun avec un disque de démarrage sans état contenant le système d'exploitation et les fichiers binaires de la base de données, et chacun avec un disque de données avec état. Procédez comme suit :
Définir et mettre à jour la configuration avec état pour les disques d'un groupe d'instances géré existant
Si vous exécutez une application avec état sur un MIG sans état (MIG sans configuration avec état), vous pouvez configurer les disques existants définis dans le modèle d'instance pour tous les instances de ce MIG. Cela vous permet de conserver les disques lors des opérations de recréation, d'autoréparation et de mise à jour des instances, et éventuellement des opérations de suppression.
Vous pouvez effectuer les opérations suivantes :
Le MIG applique automatiquement et de manière asynchrone la configuration mise à jour dans la règle avec état à toutes les instances. Les mises à jour des configurations de disque dans une règle avec état n'interrompent pas l'exécution des VM. Pour en savoir plus, consultez la section Appliquer des mises à jour de règles avec état.
Pour un MIG régional, vous devez désactiver la redistribution proactive des instances interzones avant de pouvoir configurer des disques avec état. Pour en savoir plus, consultez la section Gestion de l'état préservé avec des groupes régionaux.
Console
gcloud
Pour spécifier les disques du modèle d'instance qui doivent être avec état ou pour mettre à jour la configuration d'un disque avec état pour un MIG existant, utilisez une ou plusieurs options
--stateful-disk
avec la commandegcloud compute instance-groups managed update
:gcloud compute instance-groups managed update NAME \ --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]
Remplacez les éléments suivants :
Si un nom d'appareil spécifié est déjà configuré dans la règle avec état, la commande met à jour la configuration.
Exemple
Vous exécutez une base de données avec plusieurs segments sur un MIG nommé
example-database- group
. Chaque VM du MIG stocke un segment sur un disque supplémentaire avec le nom d'appareildata-disk
, qui est défini par le modèle d'instance. Le MIG n'a pas de configuration avec état et vous souhaitez conserver les disques de données lors de la recréation, de l'autoréparation et des mises à jour d'instances. Vous souhaitez également protéger les disques de données contre la suppression lorsqu'une VM est supprimée.REST
Pour spécifier les disques du modèle d'instance qui doivent être avec état ou mettre à jour la configuration des disques avec état pour un MIG existant, configurez les disques dans la règle avec état du MIG à l'aide de la méthode
instanceGroupManagers.patch
:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/NAME { "statefulPolicy": { "preservedState": { "disks": { "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }, "DEVICE_NAME": {"autoDelete": "DELETE_RULE" } } } } }
Remplacez l'élément suivant :
Si le nom d'appareil spécifié est déjà configuré dans la règle avec état, la méthode
patch
met à jour sa configuration.Exemple
Vous exécutez une base de données avec plusieurs segments sur un MIG nommé
example-database- group
. Chaque VM du MIG stocke un segment sur un disque supplémentaire avec le nom d'appareildata-disk
, qui est défini par le modèle d'instance. Le MIG n'a pas de configuration avec état et vous souhaitez conserver les disques de données lors de la recréation, de l'autoréparation et des mises à jour d'instances. Vous souhaitez également protéger les disques de données contre la suppression lorsqu'une VM est supprimée.Déclarer des disques persistants avec état comme étant sans état
Vous devrez peut-être configurer un disque avec état pour qu'il soit traité comme sans état. Exemple :
Pour déclarer tous les disques avec un nom d'appareil donné comme étant sans état, supprimez la configuration du disque de la règle avec état.
Le MIG applique la modification à la règle avec état automatiquement et de manière asynchrone à toutes les instances. Les mises à jour de la configuration de disque dans une règle avec état n'interrompent pas l'exécution des instances de VM.
Pour en savoir plus, consultez la section Appliquer des mises à jour de règles avec état.
Console
gcloud
Pour spécifier les disques de la règle avec état du MIG à rendre sans état, utilisez l'option
--remove-stateful-disks
avec la commandegcloud compute instance-groups managed update
:gcloud compute instance-groups managed update NAME \ --remove-stateful-disks DEVICE_NAME[,DEVICE_NAME,...]
Remplacez l'élément suivant :
Exemple
Vous exécutez une ancienne application avec plusieurs nœuds sur un MIG nommé
example-legacy-group
. Chaque VM du MIG stocke les données d'application sur un disque de démarrage portant le nom d'appareilboot-disk
, que vous avez configuré avec état dans la règle avec état du MIG. Vous avez déplacé les données d'application vers un disque supplémentaire et souhaitez maintenant rendre le disque de démarrage sans état pour faciliter la mise à jour vers de nouvelles images.Pour supprimer la configuration avec état du disque de démarrage, mettez à jour le groupe d'instances géré :
gcloud compute instance-groups managed update example-legacy-group \ --remove-stateful-disks boot-disk
Le MIG supprime automatiquement et de manière asynchrone la configuration avec état du nom d'appareil
boot-disk
pour les disques de démarrage de toutes les instances du groupe. Les disques de démarrage restent associés aux instances, mais ne sont plus avec état. Lorsque vous recréez ou mettez à jour les instances, ou lorsque les instances sont autoréparées, le MIG recrée les disques de démarrage à partir de l'image spécifiée dans le modèle d'instance.REST
Pour spécifier les disques de la règle avec état MIG à rendre sans état, supprimez la configuration de chaque disque de la règle avec état MIG à l'aide de la méthode
instanceGroupManagers.patch
:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/NAME { "statefulPolicy": { "preservedState": { "disks": { "DEVICE_NAME": null, ... } } } }
Remplacez l'élément suivant :
Exemple
Vous exécutez une ancienne application avec plusieurs nœuds sur un MIG nommé
example-legacy-group
. Chaque VM du MIG stocke les données d'application sur un disque de démarrage portant le nom d'appareilboot-disk
, que vous avez configuré avec état dans la règle avec état du MIG. Vous avez déplacé les données d'application vers un disque supplémentaire et souhaitez maintenant rendre le disque de démarrage sans état pour faciliter la mise à jour vers de nouvelles images.Pour supprimer la configuration avec état du disque de démarrage, appliquez un correctif au groupe d'instances géré :
PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group { "statefulPolicy": { "preservedState": { "disks": { "boot-disk": null } } } }
Le MIG supprime automatiquement et de manière asynchrone la configuration avec état du nom d'appareil
boot-disk
pour les disques de démarrage de toutes les instances du groupe. Les disques de démarrage restent associés aux instances, mais ne sont plus avec état. Lorsque vous recréez ou mettez à jour les instances, ou lorsque les instances sont autoréparées, le MIG recrée les disques de démarrage à partir de l'image spécifiée dans le modèle d'instance.Supprimer des disques persistants avec état d'un groupe d'instances géré
Vous devrez peut-être supprimer complètement un disque avec état des instances d'un MIG, par exemple, si vous avez reconçu l'architecture de votre application et déplacé l'état hors de ce disque.
Les MIG ne permettent pas de supprimer des disques avec état. Vous devez donc procéder comme suit :
Configurer des disques persistants avec état individuellement pour une VM dans un groupe d'instances géré
Configurez des disques persistants avec état pour une VM spécifique d'un MIG en ajoutant le nom de l'appareil du disque à la configuration par instance de cette VM. Mettez à jour la VM pour appliquer la configuration par instance et la rendre effective.
La configuration individuelle de disques persistants avec état pour des VM spécifiques dans un MIG est utile si vous devez :
Ajouter des disques avec état existants à de nouvelles VM dans un groupe d'instances géré
Vous pouvez ajouter des disques avec état existants aux nouvelles instances que vous créez manuellement dans un MIG. Cela est utile pour migrer une application avec état des VM autonomes existantes vers un MIG avec état, par exemple :
Ajoutez des disques avec état existants lorsque vous créez manuellement des instances spécifiques dans un MIG à l'aide de gcloud CLI ou de REST. Le MIG applique la configuration immédiatement lors de la création de la VM.
gcloud
Pour créer une VM avec un nom personnalisé et lui associer un ou plusieurs disques avec état, utilisez la commande
gcloud compute instance-groups managed create-instance
avec une ou plusieurs options--stateful-disk
.gcloud compute instance-groups managed create-instance NAME \ --instance VM_NAME \ [--zone ZONE | --region REGION] \ --stateful-disk device-name=DEVICE_NAME,source=DISK[,mode=MODE][,auto-delete=DELETE_RULE]
Remplacez les éléments suivants :
Exemple
Vous souhaitez disposer de l'autoréparation pour un serveur de base de données qui s'exécute actuellement sur une VM autonome nommée
db-instance
et qui stocke actuellement des données sur un disque nommédb-data-disk-1
.Créez un MIG avec état avec autoréparation, créez une VM similaire dans le MIG et associez le disque de données existant
db-data-disk-1
à la nouvelle instance en tant que disque avec état :REST
Pour créer une ou plusieurs instances dans un MIG, définir des noms de VM personnalisés et associer un ou plusieurs disques avec état existants à ces instances, utilisez la méthode
instanceGroupManagers.createInstances
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/createInstances { "instances": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : { "source": "DISK", "mode": "MODE", "autoDelete": "DELETE_RULE" }, ... } } }, ... ] }
Remplacez les éléments suivants :
Exemple
Vous souhaitez disposer de l'autoréparation pour un serveur de base de données qui s'exécute actuellement sur une VM autonome nommée
db-instance
et qui stocke actuellement des données sur un disque nommédb-data-disk-1
.Créez un MIG avec état avec autoréparation, créez une instance similaire dans le MIG et associez le disque de données existant
db-data-disk-1
à la nouvelle VM en tant que disque avec état :Ajouter, déclarer et remplacer individuellement des disques avec état pour les VM d'un groupe d'instances géré
Configurez les disques avec état individuellement pour une instance gérée en ajoutant ou en mettant à jour une configuration de disque avec état dans la configuration par instance associée. Ensuite, mettez à jour l'instance pour appliquer la configuration par instance à la VM.
La configuration individuelle de disques avec état est utile pour les tâches suivantes :
Ajouter un disque avec état depuis l'extérieur d'un MIG à une VM de ce MIG. Vous pouvez associer n'importe quel disque extérieur à un MIG à une instance gérée en ajoutant une configuration avec état pour le disque dans la configuration par instance associée. Une fois la configuration appliquée, le MIG associe automatiquement le disque à l'instance et le traite comme étant avec état.
Déclarer un disque persistant sans état comme étant avec état. Vous pouvez déclarer un disque précédemment sans état et actuellement associé à une VM en tant que disque avec état en ajoutant pour ce disque une configuration avec état incluant le nom de l'appareil et son URI, dans la configuration par instance associée. Une fois la configuration appliquée, le MIG commence à conserver le disque comme avec état.
Remplacer un disque avec état par un autre disque. Le remplacement d'un disque avec état par un autre peut être utile, par exemple, si vous avez besoin d'accéder à une sauvegarde récupérée. Vous pouvez échanger un disque avec état contre un autre en mettant à jour l'URI du disque tout en conservant le même nom d'appareil dans la configuration par instance. Après avoir appliqué la configuration par instance mise à jour, le MIG dissocie l'ancien disque et associe le nouveau en utilisant le même nom d'appareil. Lors de l'application de la mise à jour, indiquez si vous souhaitez que l'instance continue de s'exécuter, la redémarrer ou la recréer. Le changement de disque de démarrage nécessite au moins un redémarrage de la VM.
gcloud
Pour configurer des disques avec état individuellement pour une VM dans un MIG, ajoutez ou mettez à jour la configuration des disques avec état dans la configuration par instance associée. Ensuite, mettez à jour l'instance pour appliquer la configuration.
Si aucune configuration par instance n'existe pour l'instance, exécutez la commande
gcloud compute instance-groups managed instance-configs create
avec une ou plusieurs options--stateful-disk
:gcloud compute instance-groups managed instance-configs create NAME \ --instance VM_NAME \ --stateful-disk device-name=DEVICE_NAME[,source=DISK][,mode=MODE][,auto-delete=DELETE_RULE] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Si une configuration par instance existe déjà pour l'instance, exécutez la commande
gcloud compute instance-groups managed instance-configs update
avec une ou plusieurs options--stateful-disk
.L'option
--update-instance
(par défaut) applique immédiatement les modifications à l'instance. Si vous utilisez--no-update-instance
, les modifications sont appliquées uniquement lors de la prochaine recréation ou mise à jour de l'instance.gcloud compute instance-groups managed instance-configs update NAME \ --instance VM_NAME \ --stateful-disk device-name=DEVICE_NAME[,source=DISK][,mode=MODE][,auto-delete=DELETE_RULE] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Remplacez les éléments suivants :
Exemple
Les données d'un disque avec état actuellement associé,
data-disk-1
, ont été corrompues et vous souhaitez les restaurer à partir de la dernière sauvegarde. Vous avez créé un disque,data-disk-2
, à partir d'un instantané pour remplacer le disque corrompu de l'instance,db-instance-1
, géré par un MIG avec état,example-database-mig
. Le disque d'origine,data-disk-1
, est associé sous le nom d'appareildata-disk
avec une règle de suppression automatique pour ne jamais supprimer le disque.Pour remplacer
data-disk-1
pardata-disk-2
, exécutez la commande suivante :gcloud compute instance-groups managed instance-configs update example-database-mig \ --instance db-instance-1 \ --stateful-disk device-name=data-disk,source=projects/example-project/zones/us-east1-c/disks/data-disk-2 \ --update-instance \ --instance-update-minimal-action restart
La commande :
Terraform
Pour configurer des disques avec état individuellement pour une VM dans un MIG, ajoutez la configuration du disque avec état dans la configuration par instance associée. Ensuite, mettez à jour l'instance pour appliquer la configuration.
Pour ajouter une configuration par instance pour une VM, utilisez la ressource
google_compute_per_instance_config
et incluez le blocpreserved_state
comme indiqué dans l'exemple suivant.Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.
REST
Pour configurer des disques avec état individuellement pour les VM d'un MIG, ajoutez ou mettez à jour la configuration du disque avec état dans les configurations par instance associées. Ensuite, mettez à jour les instances pour appliquer la configuration.
Si les configurations par instance n'existent pas encore pour les VM données, utilisez la méthode
instanceGroupManagers.updatePerInstanceConfigs
ou la méthoderegionInstanceGroupManagers.updatePerInstanceConfigs
avec une configuration avec état pour un ou plusieurs disques :POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/updatePerInstanceConfigs { "perInstanceConfigs": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : { "source": "DISK", "mode": "MODE", "autoDelete": "DELETE_RULE" }, ... } }, "fingerprint: "FINGERPRINT" }, ... ] }
Si des configurations par instance existent déjà pour les VM données, utilisez la méthode
instanceGroupManagers.patchPerInstanceConfigs
ou la méthoderegionInstanceGroupManagers.patchPerInstanceConfigs
avec une configuration avec état pour un ou plusieurs disques :POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : { "source": "DISK", "mode": "MODE", "autoDelete": "DELETE_RULE" }, ... } }, "fingerprint: "FINGERPRINT" }, ... ] }
Remplacez l'élément suivant :
Les méthodes
updatePerInstanceConfigs
etpatchPerInstanceConfigs
mettent à jour les configurations par instance spécifiées, mais n'appliquent pas les mises à jour de configuration aux VM gérées associées. Les modifications sont appliquées à une instance lorsque le MIG est invité à recréer ou à mettre à jour l'instance. Vous pouvez également mettre à jour l'instance de manière sélective pour appliquer les modifications.Exemple
Les données d'un disque avec état actuellement associé,
data-disk-1
, ont été corrompues et vous souhaitez les restaurer à partir de la dernière sauvegarde. Vous avez créé un disque,data-disk-2
, à partir d'un instantané pour remplacer le disque corrompu de l'instance,db-instance-1
, géré par un MIG avec état,example-database-mig
. Le disque d'origine,data-disk-1
, est associé sous le nom d'appareildata-disk
avec une règle de suppression automatique pour ne jamais supprimer le disque.Pour mettre à jour la configuration par instance de
db-instance-1
avec le nouveau disque, appelez la méthodepatchPerInstanceConfigs
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "db-instance-1", "preservedState" : { "disks": { "data-disk" : { "source": "projects/example-project/zones/us-east1-c/disks/data-disk-2" } } } } ] }
La méthode corrige la configuration par instance pour
db-instance-1
:La mise à jour de la configuration n'est pas encore appliquée à la VM
db-instance-1
. Le MIG applique la mise à jour de la configuration lorsque vous recréez ou mettez à jour l'instance.Pour appliquer la mise à jour de la configuration par instance à la VM
db-instance-1
, appelez la méthodeinstanceGroupManagers.applyUpdatesToInstances
de l'instance :POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/applyUpdatesToInstances { "instances": ["/zones/us-east1-c/instances/db-instance-1"], "minimalAction": "RESTART" }
La méthode met à jour l'état préservé de l'instance gérée, en dissociant
data-disk-1
et en associantdata-disk-2
sous le même nom d'appareildata-disk
. CommeminimalAction
est définie surRESTART
, la méthode redémarre la VMdb-instance-1
, ce qui permet à l'application de base de données de commencer à utiliser le nouveau disque.Dissocier un disque avec état ou le déclarer sans état pour une VM individuelle
Vous devrez peut-être dissocier un disque avec état ou le configurer pour qu'il soit traité comme sans état pour une VM individuelle. Exemple :
Dissociez un disque avec état ou rendez-le sans état pour une VM individuelle en supprimant la configuration avec état du disque de la configuration par instance associée ou en supprimant la configuration par instance complète. Lorsque vous appliquez la modification :
La suppression d'une configuration de disque d'une configuration par instance ne redémarre pas une instance de VM en cours d'exécution, sauf si vous choisissez explicitement de le faire.
Pour en savoir plus, consultez la page Appliquer des mises à jour de configurations par instance.
gcloud
Pour dissocier des disques avec état ou les déclarer sans état individuellement pour une VM d'un MIG, supprimez la configuration du disque avec état de la configuration par instance associée ou supprimez complètement la configuration par instance si elle ne contient aucun autre état. Mettez à jour l'instance pour appliquer la configuration.
Pour supprimer une configuration de disque avec état de la configuration par instance associée, utilisez la commande
gcloud compute instance-groups managed instance-configs update
avec l'option--remove-stateful-disks
. L'option--update-instance
(par défaut) applique immédiatement les modifications à l'instance. Si vous utilisez--no-update-instance
, les modifications sont appliquées uniquement lors de la prochaine recréation ou mise à jour de l'instance.gcloud compute instance-groups managed instance-configs update NAME \ --instance VM_NAME \ --remove-stateful-disks DEVICE_NAME[,DEVICE_NAME,...] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Remplacez les éléments suivants :
Exemple
Vous exécutez une ancienne application sur un MIG nommé
example-legacy-group
. Chaque VM du MIG stocke les données d'application sur un disque de démarrage portant le nom d'appareilboot-disk
. À l'aide de configurations par instance, vous avez fait de chaque disque de démarrage un disque avec état. Vous avez maintenant déplacé les données d'application vers un disque supplémentaire et vous souhaitez rendre le disque de démarrage sans état pour chaque VM afin de faciliter la mise à jour vers de nouvelles images.Pour chaque instance, par exemple pour
node-1
, exécutez la commande suivante :gcloud compute instance-groups managed instance-configs update example-legacy-group \ --instance node-1 \ --remove-stateful-disks boot-disk \ --update-instance
La commande :
REST
Pour dissocier des disques avec état ou les déclarer sans état individuellement pour une VM d'un MIG, supprimez la configuration du disque avec état de la configuration par instance associée ou supprimez complètement la configuration par instance si elle ne contient aucun autre état. Ensuite, mettez à jour l'instance pour appliquer la configuration.
Pour supprimer une configuration de disque avec état de la configuration par instance associée, utilisez la méthode
instanceGroupManagers.patchPerInstanceConfigs
ou la méthoderegionInstanceGroupManagers.patchPerInstanceConfigs
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : null }, ... }, "fingerprint: "FINGERPRINT" ... } ] }
Remplacez l'élément suivant :
La méthode
patchPerInstanceConfigs
corrige les configurations par instance spécifiées, mais n'applique pas les modifications aux VM associées. Les modifications sont appliquées à une VM lorsque vous recréez ou mettez à jour l'instance. Vous pouvez appliquer les modifications manuellement ou utiliser des mises à jour progressives automatiques.Exemple
Vous exécutez une ancienne application sur un MIG nommé
example-legacy-group
. Chaque VM du MIG stocke les données d'application sur un disque de démarrage portant le nom d'appareilboot-disk
. Vous avez configuré le disque de démarrage avec état dans les configurations par instance du MIG lors de la migration des VM autonomes vers le MIG. Vous avez déplacé les données d'application vers un disque supplémentaire et souhaitez maintenant rendre le disque de démarrage sans état pour chaque VM afin de faciliter la mise à jour vers de nouvelles images.Commentaires
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.
Étape suivante
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/12/22 (UTC).
-