Règles d'extension de VM globales

Ce document fournit une présentation des règles globales dans VM Extension Manager. Vous pouvez utiliser des règles d'extension globales pour 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 disposent des extensions spécifiées installées et en cours d'exécution.

Pour en savoir plus, consultez À propos de VM Extension Manager.

Le schéma suivant illustre comment vous pouvez utiliser une règle d'extension globale pour appliquer des extensions à des VM dans différentes zones et régions de votre projet :

Diagramme de l'architecture de VM Extension Manager montrant une règle globale appliquée aux VM dans les zones et les régions.

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, vous pouvez sélectionner des VM portant le libellé env=prod dans toutes les zones et régions du projet. Dans ce cas, VM Extension Manager 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 globales

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 à réduire 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 garantir 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 progressivement des extensions dans différentes zones sur une période donnée. La période par défaut pour ce déploiement est de cinq jours. 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 des extensions sur toutes les VM ciblées dans toutes les zones et régions. Cette approche est utile dans les situations où 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 délai d'attente entre les vagues. Pour en savoir plus, consultez la rolloutPlans.insert méthode.

Comportement en cas de conflit de déploiement

Lorsque vous créez ou mettez à jour une règle d'extension globale, un conflit peut se produire dans les situations suivantes :

  • Lors de la création d'une règle globale. Un conflit de nom de règle se produit si une règle zonale portant le même nom que la règle globale existe déjà dans une zone.
  • Lors de la mise à jour d'une règle globale. Un conflit de contenu de règle se produit si une règle zonale existante a été modifiée indépendamment du déploiement de la règle globale. Par exemple, si vous modifiez une règle zonale à l'aide d'un appel d'API zonale et qu'un déploiement de règle globale ultérieur tente de modifier cette même règle zonale, un conflit se produit.

Pour éviter ces conflits, vous pouvez spécifier un comportement en cas de conflit pour le déploiement. Ce paramètre détermine si la règle globale doit écraser les règles zonales conflictuelles lors d'un déploiement. Vous pouvez spécifier l'un des comportements suivants :

  • Ne pas écraser (par défaut). Si vous ne spécifiez pas de comportement en cas de conflit, le déploiement de la règle globale n'écrase pas les règles zonales conflictuelles. La configuration de la règle zonale est prioritaire dans cette zone.
  • Écraser. Si vous définissez le comportement en cas de conflit sur overwrite, la règle globale écrase les règles zonales conflictuelles et la configuration de la règle globale est appliquée dans cette zone.

Les conflits de déploiement et la priorité des règles sont des fonctionnalités distinctes qui fonctionnent indépendamment. Pour en savoir plus sur la priorité des règles, consultez Priorité des règles et résolution des conflits.

Pour en savoir plus sur les conflits de déploiement, consultez le conflictBehavior paramètre dans la globalVmExtensionPolicies.insert méthode.

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 conformément au 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 règle.

Réessayer un déploiement de règle de mise à jour

La liste suivante décrit les scénarios dans lesquels vous devrez peut-être réessayer un déploiement de règle de mise à jour :

  • Nouvelles zones ajoutées. Si de nouvelles Google Cloud zones 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 de la règle zonale. Si des règles zonales ont été modifiées indépendamment (par exemple, à l'aide d'un appel d'API zonale pour modifier une règle zonale), vous pouvez réessayer un déploiement de mise à jour avec conflictBehavior défini sur overwrite. Ce paramètre réapplique la configuration de la règle globale et écrase les modifications de la règle zonale.
  • Déploiement interrompu. Si un déploiement précédent échoue avant la fin, vous pouvez lancer un nouveau déploiement pour réessayer la mise à jour.
  • Accélérer un déploiement. Si un déploiement en cours progresse trop lentement, vous pouvez lancer un nouveau déploiement à l'aide d'un plan FAST_ROLLOUT ou d'un plan de déploiement personnalisé pour accélérer le processus de mise à jour.

Pour en savoir plus, consultez le retryUuid paramètre dans la globalVmExtensionPolicies.update méthode.

Lorsque vous réessayez un déploiement, vous devez fournir un identifiant unique universel (UUID) pour identifier la requête 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 à 32 caractères, par exemple a1a2a3a4-b1b2-c1c2-d1d2-d3d4d5d6d7d8.

Réessayer un déploiement de règle 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 lancer un nouveau déploiement à l'aide d'un plan FAST_ROLLOUT ou 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 globalVmExtensionPolicies.delete méthode.

Étape suivante

Pour en savoir plus sur la gestion des extensions, consultez les ressources suivantes :