Règles d'extension de VM globales

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 :

Diagramme d'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, 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 progressivement les 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 premiers déploiements 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 :

  • Lorsque vous créez 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.
  • Lorsque vous mettez à jour 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 zonal, 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 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 écraser (par défaut) Si vous ne spécifiez pas de comportement en cas de conflit, le déploiement de la règle globale ne remplace pas les règles zonales en conflit. 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 remplace les règles zonales en conflit, 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 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 :

  • De nouvelles zones ont été ajoutées. Si de nouvelles zones Google Cloud deviennent disponibles après le déploiement d'une règle globale, le gestionnaire d'extensions de VM 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.
  • Annuler les modifications apportées aux règles zonales Si les règles zonales ont été modifiées indépendamment (par exemple, en utilisant un appel d'API zonal pour modifier une règle zonale), vous pouvez réessayer de déployer une mise à jour avec conflictBehavior défini sur overwrite pour réappliquer la configuration de la règle globale et remplacer les modifications apportées à la règle zonale.
  • Déploiement interrompu : Si un déploiement précédent échoue avant la fin, vous pouvez en lancer un autre 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_ROLLOUT ou 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 de supprimer la règle.
  • Accélérer un déploiement Si un déploiement de suppression en cours progresse trop lentement, vous pouvez en démarrer un autre à 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 méthode globalVmExtensionPolicies.delete.

Étape suivante

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