Ce document décrit les procédures spécifiques à la création et à la gestion de groupes d'instances gérés (MIG) régionaux. Pour obtenir des informations générales sur la création de MIG, consultez la page Créer des groupes d'instances gérés.
Un MIG régional répartit vos instances sur plusieurs zones d'une région, ce qui augmente la résilience de vos charges de travail basées sur les MIG. L'utilisation de plusieurs zones vous protège des cas extrêmes où toutes les instances d'une même zone échouent.
Pour plus d'informations sur les MIG régionaux, y compris sur la raison de leur choix, leurs options de configuration supplémentaires et les différences avec les MIG zonaux, consultez la présentation sur les MIG régionaux.
Avant de commencer
- Si vous voulez utiliser les exemples d'API de ce guide, configurez l'accès aux API.
- Si vous voulez utiliser les exemples de ligne de commande de ce guide, installez l'outil de ligne de commande
gcloud
. - Créez un modèle d'instance, un composant fondamental d'un groupe d'instances géré.
- Apprenez-en plus sur les régions et les zones qui contiennent des ressources telles que les processeurs, les GPU et les disques.
Limites
- Avec un MIG régional, vous pouvez créer jusqu'à 2 000 VM dans une région, avec un maximum de 1 000 VM par zone. Avec un MIG zonal, vous pouvez créer jusqu'à 1 000 VM. Si vous en avez besoin d'un plus grand nombre, contactez l'assistance.
- Lors de la mise à jour d'un MIG, vous pouvez spécifier jusqu'à 1 000 VM dans une même requête.
Si vous souhaitez un MIG avec état, vérifiez les limites des MIG avec état.
Vous devez sélectionner les zones associées à un MIG régional lors de sa création. Une fois que vous avez choisi des zones spécifiques lors de la création, vous ne pouvez plus les modifier ni les mettre à jour. Toutefois, vous pouvez définir la forme de distribution cible d'un MIG pour spécifier la distribution de ses instances gérées dans les zones que vous avez sélectionnées.
Si vous souhaitez utiliser l'équilibrage de charge avec un MIG régional, les limites suivantes s'appliquent :
- Vous ne pouvez pas utiliser le mode d'équilibrage
maxRate
. - Si vous utilisez un schéma d'équilibrage de charge HTTP(S) avec un MIG régional, vous devez choisir le mode d'équilibrage
maxRatePerInstance
oumaxUtilization
.
- Vous ne pouvez pas utiliser le mode d'équilibrage
Si vous souhaitez effectuer l'autoscaling d'un MIG régional, les limites suivantes s'appliquent :
- Vous devez définir la forme de distribution cible du groupe sur
EVEN
. - Pour effectuer un scaling vertical et horizontal, vous devez activer la redistribution proactive des instances. Si vous définissez le mode de l'autoscaler pour qu'il n'effectue que le scaling horizontal, vous n'avez pas besoin d'activer la distribution proactive des instances.
Si vous souhaitez configurer l'autoscaling basé sur les métriques Cloud Monitoring pour un MIG régional, les limites suivantes s'appliquent :
- Vous ne pouvez pas utiliser de métriques par groupe.
- Vous ne pouvez pas appliquer de filtres aux métriques par instance.
- Vous devez définir la forme de distribution cible du groupe sur
Créer un MIG régional
Utilisez Cloud Console, l'outil gcloud
ou l'API Compute Engine.
Si la capacité de chaque zone est insuffisante pour prendre en charge les VM du groupe, Compute Engine crée autant de VM que possible, puis tente de créer les VM restantes lorsqu'une capacité supplémentaire devient disponible.
Par défaut, si vous ne spécifiez pas explicitement des zones individuelles dans votre requête, Compute Engine choisit automatiquement trois zones dans lesquelles créer des VM. Si vous devez créer des VM dans un nombre de zones différent de trois, ou si vous souhaitez sélectionner les zones utilisées, vous pouvez fournir une liste des zones dans votre requête. Pour en savoir plus, consultez la section Sélection de zones.
Par défaut, les instances sont réparties uniformément dans les zones sélectionnées. Si vous souhaitez utiliser des ressources zonales avec votre MIG régional, telles que des GPU spécifiques, des disques persistants zonaux existants ou des réservations zonales, vous pouvez définir la forme de distribution du MIG pour créer des instances dans les zones contenant ces ressources.
Puisque vous créez un MIG régional, gardez à l'esprit que certaines ressources, comme les disques persistants existants, sont zonales. Si vous spécifiez dans votre modèle d'instance des ressources zonales telles que des disques persistants existants, ces disques doivent être présents dans toutes les zones sélectionnées pour pouvoir être associés aux VM créées par ce MIG régional.
La redistribution proactive des instances est activée par défaut. Si vous devez gérer manuellement le nombre de VM dans chaque zone, vous pouvez désactiver la redistribution proactive des instances. Si vous désactivez la redistribution proactive des instances et que vous souhaitez utiliser l'autoscaling, vous devez limiter l'autoscaler pour qu'il ne procède qu'au scaling horizontal.
Console
- Dans Cloud Console, accédez à la page Groupes d'instances.
- Cliquez sur Créer un groupe d'instances pour définir un nouveau groupe d'instances.
- Sélectionnez l'une des options du groupe d'instances géré : sans état (par défaut) ou avec état.
- Sous Emplacement, sélectionnez Plusieurs zones.
- Sélectionnez une région.
- Si vous souhaitez choisir des zones spécifiques, cliquez sur Configurer des zones pour sélectionner les zones à utiliser.
- Sous Forme de distribution cible, sélectionnez Égale. Si vous souhaitez sélectionner une autre forme, consultez la section Définir une règle de distribution des instances entre les zones.
- Si vous souhaitez désactiver la redistribution proactive des instances
- Assurez-vous que le mode d'autoscaling est défini sur Ne pas procéder à un autoscaling.
- Définissez la redistribution des instances sur Désactivé.
- Choisissez un modèle d'instance pour le groupe d'instances ou créez-en un.
- Indiquez le nombre de VM pour ce groupe. Pensez à provisionner suffisamment de VM pour prendre en charge votre application en cas de défaillance d'une zone.
- Terminez le processus de création de MIG.
gcloud
Tous les MIG requièrent un modèle d'instance. Commencez par créer un modèle d'instance si vous n'en avez pas. Par exemple, la commande suivante crée un modèle d'instance de base doté des propriétés par défaut :
gcloud compute instance-templates create example-template
Exécutez ensuite la commande instance-groups managed create
avec l'option --region
. Par exemple, la commande suivante crée un groupe d'instances géré régional dans trois zones de la région us-east1
:
gcloud compute instance-groups managed create example-rmig \ --template example-template \ --size 30 \ --region us-east1
Si vous souhaitez sélectionner des zones spécifiques que le groupe doit utiliser, ajoutez l'option --zones
:
gcloud compute instance-groups managed create example-rmig \ --template example-template \ --size 30 \ --zones us-east1-b,us-east1-c
Si vous souhaitez désactiver la redistribution proactive des instances, définissez l'option --instance-redistribution-type
sur NONE
. Vous ne pouvez pas désactiver la redistribution proactive des instances si l'autoscaling est activé.
gcloud compute instance-groups managed create example-rmig \ --template example-template \ --size 30 \ --instance-redistribution-type NONE \ --region us-east1
API
Tous les MIG requièrent un modèle d'instance. Commencez par créer un modèle d'instance si vous n'en avez pas.
Ensuite, envoyez une requête POST
à la méthode regionInstanceGroupManagers.insert
.
Dans le corps de la requête, spécifiez le nom du groupe, sa taille et l'URL du modèle d'instance. Vous pouvez éventuellement spécifier d'autres champs, tels que le nom de base pour les instances du groupe.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "baseInstanceName": "BASE_INSTANCE_NAME", "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME", "name": "INSTANCE_GROUP_NAME", "targetSize": "TARGET_SIZE" }
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet pour cette requête.REGION
: région du groupe.BASE_INSTANCE_NAME
: nom d'instance pour chaque instance de VM créée au sein du groupe. Par exemple, le nom d'instance de baseexample-instance
permettrait la création d'instances portant des noms du typeexample-instance-[RANDOM_STRING]
, où[RANDOM_STRING]
est une chaîne aléatoire générée par le serveur.INSTANCE_TEMPLATE_NAME
: modèle d'instance à utiliser.INSTANCE_GROUP_NAME
: nom du MIG.TARGET_SIZE
: nombre cible de VM pour le groupe.
Si vous souhaitez sélectionner des zones spécifiques, ou si vous créez des VM dans une région comportant un nombre de zones différent de trois, incluez la propriété distributionPolicy
dans votre requête et fournissez la liste des zones. Remplacez ZONE
par le nom d'une zone dans laquelle créer des VM.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "baseInstanceName": "BASE_INSTANCE_NAME", "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME", "name": "INSTANCE_GROUP_NAME", "targetSize": "TARGET_SIZE", "distributionPolicy": { "zones": [ {"zone": "zones/ZONE"}, {"zone": "zones/ZONE"} ] } }
Par exemple, la requête qui suit permet de créer un MIG régional nommé example-rmig
et comportant 10 instances gérées réparties sur les zones us-east1-b
et us-east1-c
:
POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-east1/instanceGroupManagers { "instanceTemplate": "global/instanceTemplates/example-instance", "name": "example-rmig", "targetSize": 10, "distributionPolicy": { "zones": [ {"zone": "zones/us-east1-b"}, {"zone": "zones/us-east1-c"} ] } }
Utiliser des instances gérées dans un MIG régional
Si vous devez agir sur des instances gérées spécifiques dans un MIG, par exemple pour créer ou supprimer des instances portant des noms spécifiques, le processus est le même pour les MIG régionaux et zonaux. Consultez la page Utiliser des instances gérées.
Obtenir des informations sur les MIG régionaux et les instances gérées
Si vous souhaitez obtenir des informations sur votre MIG, par exemple pour afficher sa configuration ou inspecter son état, ou encore sur les instances gérées d'un MIG, la procédure est la même pour les MIG régionaux et zonaux. Pour en savoir plus, consultez la page Obtenir des informations sur les MIG et les instances gérées.
Mettre à jour un groupe d'instances géré régional
Vous pouvez appliquer un nouveau modèle d'instance à un groupe d'instances géré régional à l'aide de la fonctionnalité de mise à jour. Pour plus d'informations, consultez la page Mettre à jour un MIG régional.
Si vous souhaitez ajouter ou supprimer des instances dans un MIG, consultez la page Utiliser des instances gérées.
Si vous souhaitez utiliser ou mettre à jour des fonctionnalités de MIG, consultez la documentation sur l'autoréparation, l'équilibrage de charge, l'autoscaling, la mise à jour automatique et les charges de travail avec état.
Vous ne pouvez pas sélectionner différentes zones pour le MIG après sa création. Toutefois, vous pouvez mettre à jour la forme cible du MIG pour modifier la manière dont le groupe distribue ses instances gérées dans les zones sélectionnées.
Définir une règle de distribution des instances entre les zones
Vous pouvez définir la forme de distribution cible d'un MIG régional sur l'une des options suivantes :
EVEN (ÉGALE) par défaut : le groupe planifie la création et la suppression d'instances de VM pour atteindre et conserver un nombre équitable d'instances gérées dans les zones sélectionnées. La distribution est équitable si le nombre d'instances gérées ne diffère pas plus de 1 entre deux zones. Option recommandée pour les charges de travail de diffusion à disponibilité élevée.
BALANCED (ÉQUILIBRÉE) : le groupe privilégie l'acquisition de ressources. De ce fait, il planifie des VM dans les zones où des ressources sont disponibles, tout en les répartissant aussi équitablement que possible dans les zones sélectionnées afin de minimiser l'impact des défaillances zonales. Option recommandée pour les charges de travail de diffusion ou par lot à disponibilité élevée qui ne nécessitent pas d'autoscaling.
ANY (TOUTE) : le groupe choisit les zones dans lesquelles créer les instances de VM afin de respecter le nombre de VM demandé dans les limites des ressources disponibles et d'optimiser l'utilisation des réservations zonales non utilisées. Option recommandée pour les charges de travail par lot ne nécessitant pas une haute disponibilité.
Pour vous aider à faire votre choix, consultez le tableau de comparaison, les cas d'utilisation et le fonctionnement des formes de distribution.
Vous définissez une forme de distribution cible lorsque vous créez un groupe ou que vous mettez à jour la forme cible d'un groupe existant.
Limites
- Si vous définissez la forme de distribution cible sur
BALANCED
, vous devez désactiver la redistribution proactive. - Si vous définissez la forme de distribution cible sur
BALANCED
ouANY
, les limites suivantes s'appliquent :- L'autoscaling n'est pas disponible. Vous pouvez définir la taille du MIG ou ajouter des instances.
- Les mises à jour Canary avec deux versions ne sont pas acceptées.
- En cas de disponibilité limitée des ressources demandées dans l'ensemble de la région, le groupe peut planifier la création d'instances de VM dans une zone où les ressources sont déjà indisponibles. Vous pouvez essayer de réduire et d'augmenter la taille du groupe pour obtenir les ressources demandées dans d'autres zones.
- Les mises à jour progressives qui utilisent la méthode de remplacement
SUBSTITUTE
tentent de créer les instances mises à jour dans la même zone que les machines obsolètes, même si la zone ne dispose pas des ressources nécessaires pour répondre aux exigences de la nouvelle version. Pour remédier à ce problème, vous pouvez supprimer les VM obsolètes de la zone limitée, puis augmenter la taille du groupe en fonction du nombre de VM supprimées. Le groupe crée des instances à partir du dernier modèle dans les zones disposant d'une capacité suffisante.
Créer un groupe avec une forme de distribution cible
Utilisez Cloud Console, l'outil gcloud
ou l'API Compute Engine.
Console
- Dans Cloud Console, accédez à la page Groupes d'instances.
- Cliquez sur Créer un groupe d'instances pour définir un nouveau groupe d'instances.
- Sélectionnez l'une des options du groupe d'instances géré : sans état (par défaut) ou avec état.
- Sous Emplacement, sélectionnez Plusieurs zones.
- Sélectionnez une région.
- Si vous souhaitez choisir des zones spécifiques, cliquez sur Configurer des zones pour sélectionner les zones à utiliser.
- Choisissez une forme de distribution cible.
- Si vous souhaitez sélectionner l'option Toute ou Équilibrée, cliquez sur Supprimer la configuration de l'autoscaling dans la section Autoscaling.
- Si vous souhaitez sélectionner l'option Équilibrée, ne sélectionnez pas Activer la redistribution des instances dans la section Redistribution des instances.
- Dans la section Forme de distribution cible, sélectionnez une forme.
- Choisissez un modèle d'instance pour le groupe d'instances ou créez-en un.
- Indiquez le nombre de VM pour ce groupe. Pensez à provisionner suffisamment de VM pour les charges de travail à disponibilité élevée afin que votre application soit prise en charge en cas de défaillance zonale.
- Terminez le processus de création de MIG.
gcloud
Exécutez la commande gcloud beta compute instance-groups managed create
avec l'option --target-distribution-shape
.
gcloud beta compute instance-groups managed create INSTANCE_GROUP_NAME \ --template TEMPLATE \ --size SIZE \ [--zones ZONES \] --target-distribution-shape SHAPE
Remplacez les éléments suivants :
INSTANCE_GROUP_NAME
: nom du groupe d'instances.TEMPLATE
: nom du modèle d'instance à utiliser pour le groupe.SIZE
: taille cible du groupe d'instances.ZONES
(facultatif) : liste des zones de la région dans lesquelles vous souhaitez déployer les instances de VM.SHAPE
: forme de distribution cible. Il peut s'agir de l'une des valeurs suivantes :EVEN
(ÉGALE) par défaut : le groupe planifie la création et la suppression d'instances de VM pour atteindre et conserver un nombre équitable d'instances gérées dans les zones sélectionnées. La distribution est équitable si le nombre d'instances gérées ne diffère pas plus de 1 entre deux zones. Option recommandée pour les charges de travail de diffusion à disponibilité élevée.BALANCED
(ÉQUILIBRÉE) : le groupe privilégie l'acquisition de ressources. De ce fait, il planifie des VM dans les zones où des ressources sont disponibles, tout en les répartissant aussi équitablement que possible dans les zones sélectionnées afin de minimiser l'impact des défaillances zonales. Option recommandée pour les charges de travail de diffusion ou par lot à disponibilité élevée qui ne nécessitent pas d'autoscaling.ANY
(TOUTE) : le groupe choisit les zones dans lesquelles créer les instances de VM afin de respecter le nombre de VM demandé dans les limites de capacité disponible et d'optimiser l'utilisation des réservations zonales non utilisées. Option recommandée pour les charges de travail par lot ne nécessitant pas une haute disponibilité.
Par exemple, pour créer un MIG régional avec une forme de distribution cible équilibrée, définissez l'option --target-distribution-shape
sur balanced
.
gcloud beta compute instance-groups managed create example-rmig \ --template example-template \ --size 30 \ --zones us-east1-b,us-east1-c \ --target-distribution-shape BALANCED \ --instance-redistribution-type NONE
API
Appelez la méthode regionInstanceGroupManagers.insert
. Dans le corps de la requête, incluez la propriété "distributionPolicy" et définissez son champ "targetShape"..
In the request body, include the
property, and set its
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "instanceTemplate": "global/instanceTemplates/TEMPLATE", "targetSize": SIZE, "distributionPolicy": { "zones": [ {"zone": "zones/ZONE"}, {"zone": "zones/ZONE"} ], "targetShape": SHAPE } }
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet pour cette requête.REGION
: région du groupe d'instances.INSTANCE_GROUP_NAME
: nom du groupe d'instances.TEMPLATE
: nom du modèle d'instance à utiliser pour le groupe.SIZE
: taille cible du groupe d'instances.ZONE
: nom d'une zone de la région dans laquelle vous souhaitez déployer les instances de VM.SHAPE
: forme de distribution cible. Il peut s'agir de l'une des valeurs suivantes :EVEN
(ÉGALE) par défaut : le groupe planifie la création et la suppression d'instances de VM pour atteindre et conserver un nombre équitable d'instances gérées dans les zones sélectionnées. La distribution est équitable si le nombre d'instances gérées ne diffère pas plus de 1 entre deux zones. Option recommandée pour les charges de travail de diffusion à disponibilité élevée.BALANCED
(ÉQUILIBRÉE) : le groupe privilégie l'acquisition de ressources. De ce fait, il planifie des VM dans les zones où des ressources sont disponibles, tout en les répartissant aussi équitablement que possible dans les zones sélectionnées afin de minimiser l'impact des défaillances zonales. Option recommandée pour les charges de travail de diffusion ou par lot à disponibilité élevée qui ne nécessitent pas d'autoscaling.ANY
(TOUTE) : le groupe choisit les zones dans lesquelles créer les instances de VM afin de respecter le nombre de VM demandé dans les limites de capacité disponible et d'optimiser l'utilisation des réservations zonales non utilisées. Option recommandée pour les charges de travail par lot ne nécessitant pas une haute disponibilité.
Modifier la forme de distribution cible d'un groupe existant
Vous pouvez modifier la forme de destination cible d'un MIG régional existant, mais les limites suivantes s'appliquent :
- Si vous souhaitez définir la forme de distribution cible
BALANCED
, vous devez d'abord désactiver la redistribution proactive. - Si vous souhaitez définir la forme de distribution cible
EVEN
et que la distribution actuelle des instances est inégale, vous devez d'abord désactiver la redistribution proactive. - Si vous définissez la forme
EVEN
et que vous souhaitez réactiver la redistribution proactive, vous devez d'abord rééquilibrer manuellement le groupe.
Console
- Dans Cloud Console, accédez à la page Groupes d'instances.
- Dans la colonne Nom de la liste, cliquez sur le nom du groupe d'instances dont vous souhaitez modifier la forme de distribution cible.
- Cliquez sur Modifier le groupe pour modifier le groupe d'instances géré.
- Sous Forme de distribution cible, spécifiez la forme de votre choix.
- Cliquez sur Enregistrer pour appliquer le nouveau modèle.
gcloud
Exécutez la commande gcloud beta compute instance-groups managed update
avec l'option --target-distribution-shape
.
gcloud beta compute instance-groups managed update INSTANCE_GROUP_NAME \ --target-distribution-shape SHAPE
Remplacez les éléments suivants :
INSTANCE_GROUP_NAME
: nom du groupe d'instances.SHAPE
: forme de distribution cible. Il peut s'agir de l'une des valeurs suivantes :EVEN
(ÉGALE) par défaut : le groupe planifie la création et la suppression d'instances de VM pour atteindre et conserver un nombre équitable d'instances gérées dans les zones sélectionnées. La distribution est équitable si le nombre d'instances gérées ne diffère pas plus de 1 entre deux zones. Option recommandée pour les charges de travail de diffusion à disponibilité élevée.BALANCED
(ÉQUILIBRÉE) : le groupe privilégie l'acquisition de ressources. De ce fait, il planifie des VM dans les zones où des ressources sont disponibles, tout en les répartissant aussi équitablement que possible dans les zones sélectionnées afin de minimiser l'impact des défaillances zonales. Option recommandée pour les charges de travail de diffusion ou par lot à disponibilité élevée qui ne nécessitent pas d'autoscaling.ANY
(TOUTE) : le groupe choisit les zones dans lesquelles créer les instances de VM afin de respecter le nombre de VM demandé dans les limites de capacité disponible et d'optimiser l'utilisation des réservations zonales non utilisées. Option recommandée pour les charges de travail par lot ne nécessitant pas une haute disponibilité.
API
Appelez la méthode regionInstanceGroupManagers.patch
.
Dans le corps de la requête, incluez la propriété distributionPolicy
et définissez son champ targetShape
.
PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "distributionPolicy": { "targetShape": SHAPE } }
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet pour cette requête.REGION
: région du groupe d'instances.INSTANCE_GROUP_NAME
: nom du groupe d'instances.SHAPE
: forme de distribution cible. Il peut s'agir de l'une des valeurs suivantes :EVEN
(ÉGALE) par défaut : le groupe planifie la création et la suppression d'instances de VM pour atteindre et conserver un nombre équitable d'instances gérées dans les zones sélectionnées. La distribution est équitable si le nombre d'instances gérées ne diffère pas plus de 1 entre deux zones. Option recommandée pour les charges de travail de diffusion à disponibilité élevée.BALANCED
(ÉQUILIBRÉE) : le groupe privilégie l'acquisition de ressources. De ce fait, il planifie des VM dans les zones où des ressources sont disponibles, tout en les répartissant aussi équitablement que possible dans les zones sélectionnées afin de minimiser l'impact des défaillances zonales. Option recommandée pour les charges de travail de diffusion ou par lot à disponibilité élevée qui ne nécessitent pas d'autoscaling.ANY
(TOUTE) : le groupe choisit les zones dans lesquelles créer les instances de VM afin de respecter le nombre de VM demandé dans les limites de capacité disponible et d'optimiser l'utilisation des réservations zonales non utilisées. Option recommandée pour les charges de travail par lot ne nécessitant pas une haute disponibilité.
Afficher la règle de distribution des instances configurée
Console
- Dans Google Cloud Console, accédez à la page Groupes d'instances. Cette page répertorie les groupes d'instances dont vous disposez,
- Cliquez sur le nom du groupe d'instances que vous souhaitez examiner. La page qui s'ouvre affiche les propriétés du groupe d'instances, ainsi que la liste des instances qui en font partie.
- Cliquez sur Détails, puis recherchez la section Forme de distribution cible.
gcloud
Exécutez la commande gcloud beta compute instance-groups managed describe
.
gcloud beta compute instance-groups managed describe INSTANCE_GROUP_NAME \ --region REGION
La commande renvoie des informations sur le groupe, y compris le champ distributionPolicy.targetShape
:
... distributionPolicy: targetShape: BALANCED zones: - zone: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f ... name: my-group region: https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1 ...
API
Envoyez une requête GET
à la méthode regionInstanceGroupManagers.get
.
GET https://www.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet pour cette requêteREGION
: région du groupe d'instancesINSTANCE_GROUP_NAME
: nom du groupe d'instances.
La forme de distribution cible est renvoyée dans le champ distributionPolicy.targetShape
. Exemple :
{ "name": "my-instance-group", "distributionPolicy": { "targetShape": "BALANCED", }, "targetSize": 50, ... }
Désactiver et réactiver la redistribution proactive des instances
La redistribution proactive des instances conserve un nombre de VM équitable dans les zones sélectionnées de la région. Cette configuration maximise la disponibilité de votre application en cas de défaillance de la zone.
La redistribution proactive des instances est activée par défaut pour les MIG régionaux, mais vous pouvez la désactiver pour les MIG sans autoscaling. Lorsque la redistribution proactive des instances est désactivée, le groupe ne tente pas de redistribuer les VM de manière proactive entre les zones. Ceci est utile si vous devez :
- supprimer manuellement ou abandonner des instances gérées du groupe sans affecter les autres VM en cours d'exécution ;
- supprimer automatiquement une VM de nœud de calcul par lot à la fin de l'exécution de la tâche sans affecter les autres nœuds de calcul ;
- protéger les VM d'une suppression automatique inattendue due à la redistribution proactive en utilisant des applications avec état.
Utilisez Cloud Console, l'outil gcloud
ou l'API Compute Engine pour créer un MIG régional avec désactivation de la redistribution proactive des instances, ou pour activer ou désactiver la redistribution proactive des instances pour un groupe existant.
Créer un groupe avec la redistribution proactive des instances désactivée
Console
- Dans Cloud Console, accédez à la page Groupes d'instances.
- Cliquez sur Créer un groupe d'instances pour définir un nouveau groupe d'instances.
- Sous Emplacement, sélectionnez Plusieurs zones.
- Sélectionnez une région.
- Si vous souhaitez choisir des zones spécifiques, cliquez sur Configurer des zones pour sélectionner les zones à utiliser.
- Pour désactiver la redistribution proactive des instances :
- Assurez-vous que le mode d'autoscaling est défini sur Ne pas procéder à un autoscaling.
- Définissez la redistribution des instances sur Désactivé.
- Choisissez un modèle d'instance pour le groupe ou créez-en un.
- Indiquez le nombre de VM pour ce groupe. Pensez à provisionner suffisamment de VM pour prendre en charge votre application en cas de défaillance d'une zone.
- Terminez le processus de création de MIG.
gcloud
Pour créer un MIG régional sans redistribution proactive des instances, utilisez la commande gcloud compute instance-groups managed create
avec l'option --instance-redistribution-type
définie sur NONE
.
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --template INSTANCE_TEMPLATE_NAME \ --size TARGET_SIZE \ --zones ZONES \ --instance-redistribution-type NONE
Remplacez les éléments suivants :
INSTANCE_GROUP_NAME
: nom du MIGINSTANCE_TEMPLATE_NAME
: nom du modèle d'instance à utiliser pour le groupeTARGET_SIZE
: taille cible du groupeZONES
: liste des zones d'une région unique dans lesquelles vous souhaitez déployer les VM.
Exemple :
gcloud compute instance-groups managed create example-rmig \ --template example-template \ --size 30 \ --zones us-east1-b,us-east1-c \ --instance-redistribution-type NONE
API
Pour créer un MIG régional sans autoscaling ni redistribution proactive des instances, envoyez une requête POST
à la méthode regionInstanceGroupManagers.insert
. Dans le corps de la requête, incluez la propriété updatePolicy
et définissez son champ instanceRedistributionType
sur NONE
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "name": "INSTANCE_GROUP_NAME", "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME", "targetSize": "TARGET_SIZE", "distributionPolicy": { "zones": [ {"zone": "zones/ZONE"}, {"zone": "zones/ZONE"} ] }, "updatePolicy": { "instanceRedistributionType": "NONE" } }
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet pour cette requêteREGION
: région du groupe d'instancesINSTANCE_GROUP_NAME
: nom du MIGINSTANCE_TEMPLATE_NAME
: nom du modèle d'instance à utiliser pour le groupeTARGET_SIZE
: taille cible du groupe d'instancesZONE
: nom d'une zone de la région unique dans laquelle vous souhaitez déployer les VM.
Désactiver la redistribution proactive des instances
Avant de pouvoir désactiver la redistribution proactive des instances, vous devez définir le mode de l'autoscaler de sorte à désactiver l'autoscaling ou à le limiter uniquement au scaling horizontal.
Console
- Dans Cloud Console, accédez à la page Groupes d'instances.
- Sélectionnez le MIG à mettre à jour, puis cliquez sur Modifier le groupe.
- Si l'autoscaling a été configuré, assurez-vous que le mode d'autoscaling est défini sur Ne pas procéder à un autoscaling.
- Désactivez la redistribution automatique en définissant le paramètre Redistribution des instances sur Désactivé.
- Cliquez sur Enregistrer.
gcloud
Si vous souhaitez désactiver la redistribution proactive des instances pour un MIG régional sans autoscaling, exécutez la commande compute instance-groups managed update
avec l'option --instance-redistribution-type
définie sur NONE
.
gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \ --instance-redistribution-type NONE \ --region REGION
Remplacez les éléments suivants :
INSTANCE_GROUP_NAME
: nom du MIGREGION
: région du groupe d'instances
API
Pour désactiver la redistribution proactive des instances pour un MIG régional sans autoscaling, envoyez une requête PATCH
à la méthode regionInstanceGroupManagers.patch
.
Dans le corps de la requête, incluez la propriété updatePolicy
et définissez son champ instanceRedistributionType
sur NONE
.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/[INSTANCE_GROUP_NAME { "updatePolicy": { "instanceRedistributionType": "NONE" } }
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet pour cette requêteREGION
: région du groupe d'instancesINSTANCE_GROUP_NAME
: nom d'un MIG sans autoscaling
Activer la distribution proactive des instances
Pour activer la distribution proactive des instances, exécutez une commande semblable à celle utilisée pour désactiver la redistribution proactive des instances, mais définissez le type de redistribution des instances sur PROACTIVE
.
Si vous avez supprimé ou abandonné manuellement certaines instances gérées, entraînant une répartition inégale des VM au sein de la région, vous devez rééquilibrer manuellement le groupe avant de pouvoir réactiver la redistribution proactive des instances. Il ne doit pas y avoir plus d'une VM de différence entre deux zones.
Un MIG régional n'autorise pas l'activation de la redistribution proactive des instances tant que les VM ne sont pas réparties de manière homogène entre les zones (c'est-à-dire tant qu'il existe une différence d'au moins deux VM entre deux zones). Cela permet d'éviter une suppression automatique involontaire des VM dans les zones contenant davantage de VM, ce qui serait l'option utilisée pour obtenir une répartition régulière.
Rééquilibrage manuel d'un MIG régional
Un MIG n'est pas équilibré si la différence du nombre de VM entre deux zones est de deux VM ou plus. Un MIG peut ne plus équilibrer si vous désactivez la redistribution proactive des instances, puis que vous supprimez ou abandonnez des instances pour provoquer une distribution inégale entre les zones.
Vous pouvez procéder manuellement à une distribution égale des instances entre les zones en supprimant les VM des zones comportant le plus d'instances, ou en redimensionnant pour ajouter des instances dans les zones comportant moins de VM jusqu'à ce que la distribution soit uniforme.
Lorsque vous redimensionnez un MIG pour lequel la redistribution proactive des instances est désactivée, le groupe continue de converger de manière opportuniste vers l'équilibre, en traitant chaque opération de redimensionnement comme une opportunité d'équilibrer le groupe :
- Lorsque le groupe augmente, il tente toujours d'ajouter des VM aux zones comportant le plus petit nombre de VM.
- Lorsque le groupe diminue, il supprime toujours les VM des zones comportant le plus grand nombre de VM.
Simuler une défaillance de zone pour un MIG régional
Pour vérifier que votre MIG régional est suffisamment surprovisionné pour survivre à une défaillance de zone, vous pouvez utiliser l'exemple suivant qui simule une défaillance zonale.
Ce script arrête et démarre Apache dans le cadre de son scénario par défaut. Si cela ne convient pas pour votre application, remplacez les commandes d'arrêt et de démarrage d'Apache par votre propre scénario de défaillance et de récupération.
Déployez ce script et exécutez-le en continu sur chaque VM du groupe. Pour ce faire, vous pouvez ajouter le script au modèle d'instance, ou l'inclure dans une image personnalisée et utiliser cette image dans le modèle d'instance.
Simulez une défaillance de zone en définissant ces deux champs de métadonnées de projet :
failed_zone
: définit la zone dans laquelle vous souhaitez simuler la panne (limite la défaillance à une seule zone).failed_instance_names
: choisissez les VM à déconnecter d'après leur nom (afin de limiter la défaillance aux seules VM dont le nom contient cette chaîne).
Vous pouvez définir ces métadonnées à l'aide de l'outil
gcloud
. Par exemple, la commande suivante définit une défaillance sur la zoneeurope-west1-b
et affectant les VM dont le nom commence parbase-instance-name
:gcloud compute project-info add-metadata --metadata failed_zone='europe-west1-b',failed_instance_names='base-instance-name-'
Après avoir simulé la panne, lancez la récupération en supprimant les clés de métadonnées :
gcloud compute project-info remove-metadata --keys failed_zone,failed_instance_names
Voici quelques exemples des scénarios de défaillance que vous pouvez exécuter à l'aide de ce script :
- Arrêtez complètement votre application pour voir comment le MIG réagit.
- Faites en sorte que vos VM renvoient un état "non opérationnel" lors des vérifications de l'état effectuées par l'équilibreur de charge.
- Reconfigurez iptables de manière à bloquer une partie du trafic à destination ou en provenance de la VM.
- Arrêtez les VM. Par défaut, celles-ci sont recréées peu de temps après par le MIG régional, mais leur nouvelle incarnation s'arrêtera dès l'exécution du script et aussi longtemps que les valeurs de métadonnées resteront définies. Vous obtenez ainsi une boucle de plantage.
Étapes suivantes
- Créez un modèle d'instance à utiliser dans un groupe d'instances géré.
- Choisissez un équilibreur de charge ou ajoutez un groupe d'instances à un équilibreur de charge.
- Activez l'autoréparation pour votre groupe d'instances géré.
- Activez l'autoscaling pour votre groupe d'instances géré.
- Mettez à jour vos instances gérées avec un nouveau modèle à l'aide du programme de mise à jour automatique.