Les règles d'extension globales vous permettent de gérer les extensions dans plusieurs zones et régions d'un projet. Lorsque vous appliquez une règle globale, VM Extension Manager s'assure que les VM de n'importe quelle région ou zone qui correspondent aux critères de la règle ont les extensions spécifiées installées et en cours d'exécution.
Le schéma suivant illustre comment utiliser une règle d'extension globale pour appliquer des extensions à des VM dans différentes zones et régions de votre projet :
Comme illustré dans le diagramme précédent, vous pouvez définir une règle d'extension globale au niveau du projet. VM Extension Manager applique cette règle à toutes les VM qui correspondent à vos critères de sélection. Par exemple, si vous sélectionnez des VM portant le libellé env=prod dans l'ensemble des zones et régions du projet, le gestionnaire d'extensions de VM applique les extensions que vous spécifiez, telles que l'agent Ops et l'extension pour SAP, uniquement à ces VM.
Plans de déploiement pour les règles mondiales
Les règles globales utilisent des plans de déploiement pour gérer le déploiement des extensions dans les zones et les régions. Un plan de déploiement vous permet de contrôler le déploiement des extensions, ce qui contribue à minimiser le risque de problèmes généralisés. En utilisant un plan de déploiement, vous pouvez définir l'ordre et le calendrier des mises à jour pour assurer un déploiement progressif et contrôlé.
Lorsque vous créez ou mettez à jour une règle globale, vous pouvez spécifier l'un des plans de déploiement suivants :
- Déploiement lent : ce déploiement déploie les extensions progressivement dans différentes zones sur une période donnée (cinq jours par défaut). Cette approche est recommandée, car elle vous permet d'identifier et de résoudre les problèmes potentiels lors des déploiements précédents avant qu'ils n'affectent l'ensemble de votre parc.
- Déploiement rapide : ce déploiement déploie immédiatement les extensions sur toutes les VM ciblées, dans toutes les zones et régions. Cette approche est utile lorsque vous devez déployer rapidement une extension ou un correctif dans des environnements hors production.
Vous pouvez également définir des plans de déploiement personnalisés pour spécifier les vagues de déploiement en fonction des zones ou des régions, ainsi que le temps d'attente entre les vagues. Pour en savoir plus, consultez la méthode rolloutPlans.insert.
Comportement en cas de conflit de déploiement
Lorsque vous créez ou mettez à jour une stratégie d'extension globale, un conflit peut se produire dans les situations suivantes :
- Lors de la création d'une règle globale : si une règle zonale en conflit avec la règle globale existe déjà dans une zone.
- Lors de la mise à jour d'une règle globale : si une règle zonale existante a été modifiée indépendamment du déploiement de la règle globale (par exemple, à l'aide d'un appel d'API zonale).
Pour vous aider à éviter ces conflits, vous pouvez spécifier un comportement en cas de conflit pour le déploiement. Cela détermine si la stratégie globale doit remplacer les stratégies zonales en conflit lors d'un déploiement. Vous pouvez spécifier l'un des comportements suivants :
- Ne pas remplacer (par défaut) : si vous ne spécifiez pas de comportement en cas de conflit, le déploiement global de la règle ne remplace pas les règles zonales en conflit. La configuration de la règle zonale est prioritaire dans cette zone.
- Remplacer : si vous définissez le comportement en cas de conflit sur
overwrite, la stratégie globale remplace les stratégies zonales en conflit, et la configuration de la stratégie globale est appliquée dans cette zone.
Pour en savoir plus, consultez le paramètre conflictBehavior dans la méthode globalVmExtensionPolicies.insert.
Réessayer un déploiement
Lorsque vous mettez à jour ou supprimez une règle d'extension globale, VM Extension Manager lance un nouveau déploiement pour appliquer les modifications en fonction du plan de déploiement. Si un déploiement est interrompu ou si de nouvelles zones sont ajoutées, vous pouvez réessayer l'opération en lançant un nouveau déploiement pour la même stratégie.
Réessayer le déploiement d'une règle de mise à jour
La liste suivante décrit les scénarios dans lesquels vous devrez peut-être réessayer de déployer une stratégie de mise à jour :
- Ajout de zones : si de nouvelles zones Google Cloud deviennent disponibles après le déploiement d'une règle globale, VM Extension Manager n'applique pas automatiquement les règles existantes aux VM de la nouvelle zone. Vous pouvez réessayer le déploiement de la mise à jour pour appliquer la règle d'extension aux VM des nouvelles zones.
- Rétablir les modifications apportées aux règles zonales : si des règles zonales ont été modifiées indépendamment (par exemple, à l'aide d'un appel d'API zonal pour modifier une règle zonale), vous pouvez réessayer de déployer une mise à jour avec
conflictBehaviordéfini suroverwritepour réappliquer la configuration de la règle globale et remplacer les modifications apportées aux règles zonales. - Déploiement interrompu : si un déploiement précédent échoue avant d'être terminé, vous pouvez en lancer un nouveau pour réessayer la mise à jour.
- Accélérer un déploiement : si un déploiement en cours progresse trop lentement, vous pouvez en lancer un autre en utilisant un plan
FAST_ROLLOUTou un plan de déploiement personnalisé pour accélérer le processus de mise à jour.
Pour en savoir plus, consultez le paramètre retryUuid dans la méthode globalVmExtensionPolicies.update.
Lorsque vous retentez un déploiement, vous devez fournir un identifiant unique universel (UUID) pour identifier la demande de nouvelle tentative.
Vous pouvez utiliser n'importe quel générateur d'UUID pour en créer un. L'UUID doit utiliser le format hexadécimal de 32 caractères, par exemple a1a2a3a4-b1b2-c1c2-d1d2-d3d4d5d6d7d8.
Nouvelle tentative de déploiement d'une stratégie de suppression
La liste suivante décrit les scénarios dans lesquels vous devrez peut-être réessayer un déploiement pour supprimer une règle :
- Déploiement interrompu : si un déploiement précédent visant à supprimer une règle a été interrompu ou n'a pas abouti, vous pouvez lancer un nouveau déploiement pour réessayer l'opération de suppression.
- Accélérer un déploiement : si un déploiement de suppression en cours progresse trop lentement, vous pouvez en démarrer un nouveau à l'aide d'un plan
FAST_ROLLOUTou d'un plan de déploiement personnalisé pour accélérer le processus de suppression.
Pour en savoir plus, consultez le paramètre retryUuid dans la méthode globalVmExtensionPolicies.delete.
Étapes suivantes
Pour en savoir plus sur la gestion des extensions, consultez les ressources suivantes :
- Installer des extensions de VM en créant des règles d'extension
- Gérer les extensions de VM à l'aide de règles d'extension