Ce document explique comment appliquer de manière sélective des mises à jour de configuration aux instances de machine virtuelle (VM) d'un groupe d'instances géré (MIG).
Compute Engine gère les VM d'un MIG en fonction des composants de configuration que vous utilisez : modèle d'instance, configuration facultative sur toutes les instances et configuration avec état facultative.
Chaque fois que vous mettez à jour la configuration des VM d'un MIG en modifiant ces composants, Compute Engine applique automatiquement votre configuration mise à jour aux nouvelles VM ajoutées au groupe.
Pour appliquer une nouvelle configuration aux VM existantes, vous pouvez configurer une mise à jour sélective, également appelée "mise à jour opportuniste". Ce type de mise à jour offre les avantages suivants :
- Vous pouvez choisir les VM que vous souhaitez mettre à jour.
- Vous pouvez contrôler la planification et la séquence des mises à jour.
- Vous pouvez utiliser la gcloud CLI ou REST pour mettre à jour immédiatement toutes les VM.
Si vous souhaitez automatiser le déploiement d'une nouvelle configuration sur l'ensemble des VM d'un MIG ou sur un sous-ensemble aléatoire, consultez la page Appliquer automatiquement les mises à jour de configuration de VM dans un MIG. Pour vous aider à faire votre choix, consultez la section Méthodes pour appliquer une nouvelle configuration aux VM existantes.
Avant de commencer
-
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 comme suit :
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Définissez une région et une zone par défaut.
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
-
Appliquer une nouvelle configuration à des VM sélectionnées
Assurez-vous que le type de règle de mise à jour de votre groupe est défini sur "Quand l'occasion se présente" pour empêcher le MIG d'appliquer automatiquement une nouvelle configuration de VM aux VM existantes. Pour en savoir plus, consultez la section Vérifier le type de règle de mise à jour de votre groupe.
Utilisez ensuite la gcloud CLI ou REST pour mettre à jour la configuration de votre MIG et appliquer la configuration la plus récente à des VM spécifiques ou à l'ensemble des VM du groupe.
gcloud
Pour configurer un nouveau modèle d'instance pour votre groupe, vous pouvez exécuter la commande set-instance-template
.
gcloud compute instance-groups managed set-instance-template INSTANCE_GROUP_NAME \ --template=INSTANCE_TEMPLATE
Appliquer une configuration à des VM spécifiques
Pour appliquer la nouvelle configuration à des VM spécifiques, exécutez la commande update-instances
avec l'option --instances
.
gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \ --instances INSTANCE_NAMES \ --most-disruptive-allowed-action DISRUPTION_LEVEL \ --minimal-action DISRUPTION_LEVEL
Appliquer une configuration à toutes les VM
Pour appliquer la nouvelle configuration à toutes les VM, exécutez la commande update-instances
avec l'option --all-instances
.
gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \ --all-instances \ --most-disruptive-allowed-action DISRUPTION_LEVEL \ --minimal-action DISRUPTION_LEVEL
Remplacez les éléments suivants :
INSTANCE_GROUP_NAME
: nom du MIGINSTANCE_TEMPLATE
: nouveau modèle d'instanceINSTANCE_NAMES
: liste des VM auxquelles appliquer le modèleDISRUPTION_LEVEL
: niveau de perturbation minimal ou maximal :none
,refresh
,restart
oureplace
- L'action minimale par défaut est
none
. - L'action la plus perturbatrice autorisée par défaut est
replace
.
- L'action minimale par défaut est
REST
Pour configurer un nouveau modèle d'instance pour votre groupe, appelez la méthode patch
sur un MIG zonal ou régional, puis mettez à jour le champ versions.instanceTemplate
. Pour éviter de déployer automatiquement le nouveau modèle sur toutes les VM du groupe, définissez le champ updatePolicy.type
sur OPPORTUNISTIC
.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "type": "OPPORTUNISTIC" }, "versions": [{ "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE", }] }
Appliquer une configuration à des VM spécifiques
Pour appliquer la nouvelle configuration à des VM spécifiques, appelez la méthode applyUpdatesToInstances
dans votre MIG zonal ou régional, et spécifiez une liste de VM dans la requête.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/applyUpdatesToInstances { "instances": [ "zones/ZONE/instances/INSTANCE_NAME_1", "zones/ZONE/instances/INSTANCE_NAME_2" ], "minimalAction": DISRUPTION_LEVEL, "mostDisruptiveAllowedAction": DISRUPTION_LEVEL }
Appliquer une configuration à toutes les VM
Pour appliquer la nouvelle configuration à toutes les VM existantes, définissez le champ allInstances
sur true
:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/applyUpdatesToInstances { "allInstances": true, "minimalAction": DISRUPTION_LEVEL, "mostDisruptiveAllowedAction": DISRUPTION_LEVEL }
Remplacez les éléments suivants :
INSTANCE_GROUP_NAME
: nom du groupeNEW_TEMPLATE
: nom du nouveau modèleZONE
: zone d'une instance à mettre à jourINSTANCE_NAME_1
etINSTANCE_NAME_2
: noms des VM à mettre à jourDISRUPTION_LEVEL
: niveau de perturbation minimal ou maximal :NONE
,REFRESH
,RESTART
ouREPLACE
- La valeur
minimalAction
par défaut estNONE
. - La valeur
mostDisruptiveAllowedAction
par défaut estREPLACE
.
- La valeur
Semblable à d'autres méthodes de groupes d'instances gérés, la méthode applyUpdatesToInstances
est basée sur l'intention, ce qui signifie qu'elle renvoie une réponse à l'opération.
L'opération peut prendre un certain temps.
Après avoir effectué une requête, vous pouvez en vérifier l'état pour savoir si la mise à jour est terminée.
Contrôler le niveau de perturbation lors des mises à jour sélectives
Selon la nature de la mise à jour, l'état d'une instance peut être perturbé. Par exemple, la modification du disque de démarrage d'une instance nécessite le remplacement de l'instance. Vous pouvez contrôler le niveau de perturbation pendant une mise à jour sélective en définissant les options suivantes :
Action minimale : utilisez cette option pour minimiser autant d'interruptions que possible ou appliquer une action plus perturbatrice que nécessaire.
- Pour limiter autant les interruptions que possible, définissez l'action minimale sur
NONE
. Si votre mise à jour nécessite une action plus perturbatrice, Compute Engine effectue l'action nécessaire à l'exécution de la mise à jour. - Pour appliquer une action plus perturbatrice que nécessaire, définissez l'action minimale sur
RESTART
ouREPLACE
. Par exemple, Compute Engine n'a pas besoin de redémarrer une VM pour modifier ses métadonnées. Toutefois, si votre application ne lit les métadonnées d'instance que lorsqu'une VM redémarre, vous pouvez définir l'action minimale surRESTART
afin de récupérer les modifications de métadonnées.
- Pour limiter autant les interruptions que possible, définissez l'action minimale sur
Action la plus perturbatrice autorisée : utilisez cette option pour empêcher une mise à jour si elle nécessite plus de perturbations que ce que vous pouvez vous permettre. Si votre mise à jour nécessite une action plus perturbatrice que celle définie à l'aide de cet indicateur, la demande de mise à jour échoue. Par exemple, si vous définissez l'action la plus perturbatrice autorisée sur
RESTART
, la tentative de mise à jour de l'image de disque de démarrage échoue, car cette mise à jour nécessite une recréation de l'instance, une action plus perturbatrice qu'un redémarrage.
Lors de la mise à jour des VM sélectionnées, ces deux options acceptent les valeurs suivantes :
Valeur | Description | Quelles propriétés de l'instance peuvent être mises à jour ? |
---|---|---|
NONE | N'affecte pas du tout l'instance | Aucun |
REFRESH | Ne provoque pas l'arrêt de l'instance | Disques supplémentaires, métadonnées d'instance, libellés, tags |
RESTART | Arrête l'instance, puis la redémarre. | Disques supplémentaires, métadonnées de l'instance, libellés, tags, type de machine |
REPLACE | Supprime l'instance, puis la crée de nouveau. | Toutes les propriétés de l'instance stockées dans le modèle d'instance ou la configuration par instance |
Remarque : L'action autorisée la plus perturbatrice ne peut pas entraîner moins de perturbations que l'action minimale.
Lorsque vous mettez à jour des VM de manière sélective, les valeurs par défaut suivantes s'appliquent :
- L'action minimale par défaut est
NONE
, ce qui limite le moins possible les interruptions. - L'action la plus perturbatrice autorisée par défaut est
REPLACE
. Si vous ne pouvez pas tolérer de telles perturbations, définissez l'action la plus perturbatrice autorisée pour qu'elle soit moins perturbatrice.
Étapes suivantes
- Pour en savoir plus, consultez la page Afficher les informations sur les MIG et les VM gérées.
- Découvrez comment créer des modèles d'instance.
- Découvrez comment utiliser les familles d'images et un remplacement progressif pour mettre à jour l'image du système d'exploitation sur toutes les VM d'un MIG.