Séquencer le déploiement des mises à niveau des clusters


Cette page explique comment gérer les mises à niveau des clusters GKE à l'aide du séquençage du déploiement. Pour en savoir plus, consultez la page À propos des mises à niveau des clusters avec le séquençage du déploiement.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Activez l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Si vous souhaitez utiliser Google Cloud CLI pour cette tâche, installez puis initialisez gcloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande gcloud components update.

Rôles requis

Configurer une séquence de déploiement

Ce document explique comment créer une séquence de déploiement à l'aide de groupes de clusters organisés par parcs ou niveaux d'accès d'équipe. Ce document utilise le terme groupe pour désigner à la fois les parcs et les champs d'application d'équipe, car vous pouvez créer une séquence de déploiement organisée avec l'une ou l'autre méthode de regroupement.

Vous pouvez créer une séquence de cinq groupes de clusters au maximum (trois pour une séquence basée sur une équipe), et choisir le temps de stabilisation des tests souhaité une fois les mises à niveau des clusters terminées dans un groupe (30 jours maximum). Vous pouvez inclure à la fois des clusters Autopilot et Standard.

Pour créer une séquence de déploiement, vos clusters doivent être organisés en groupes de parcs ou de niveaux d'accès d'équipe. Pour savoir comment organiser vos clusters, consultez l'exemple de banque de la communauté. Une fois qu'ils sont organisés en groupes, vous pouvez créer une séquence de déploiement en définissant les relations de groupe en amont et le temps de stabilisation de chaque groupe. Dans une séquence de déploiement, en amont fait référence au groupe précédent et en aval au groupe suivant.

Organiser vos clusters en groupes

Dans une séquence de déploiement, tous les clusters de tous les groupes doivent être enregistrés dans le même canal de publication et dans la même version mineure. Si ces exigences ne sont pas remplies et si les versions présentent des écarts entre les clusters, cela peut entraîner des problèmes lors du déploiement de la version. Pour en savoir plus, consultez la section Éligibilité au déploiement.

Vous pouvez créer des séquences de déploiement entre les parcs ou des séquences de déploiement entre les niveaux d'accès d'équipe d'une équipe (preview).

Comme vous l'avez vu dans À propos des mises à niveau des clusters avec le séquençage du déploiement, les niveaux d'accès d'équipe sont une construction au niveau du parc d'entreprise permettant d'associer des sous-ensembles de clusters de parc à des équipes d'application spécifiques. Vous devez activer GKE Enterprise pour utiliser les champs d'application d'équipe. Les limites suivantes s'appliquent lors de l'utilisation ou de la création de niveaux d'accès d'équipe pour le séquençage du déploiement :

  • Les séquences basées sur l'équipe nécessitent des clusters à location unique. En d'autres termes, chaque cluster n'est associé qu'à une seule équipe. Les clusters partagés (qui sont compatibles avec la gestion d'équipe de flotte générale) ne sont pas compatibles avec le séquençage du déploiement.

  • Chaque niveau d'accès d'équipe doit se trouver dans un parc différent afin de créer une séquence de déploiement entre eux. Il n'est pas possible de créer une séquence de déploiement entre différents niveaux d'accès d'équipe dans le même parc.

Si vous avez déjà organisé vos clusters groupes, vous pouvez ignorer les étapes suivantes et passer à la section Créer une séquence de déploiement.

Parcs

Pour créer une séquence de déploiement basée sur un parc, vous devez d'abord regrouper vos clusters dans des parcs. Vous pouvez organiser vos clusters en fonction des environnements de déploiement tels que les tests, la préproduction et la production, comme indiqué dans l'exemple de séquence de déploiement basée sur un parc.

Enregistrez chaque cluster auprès d'un parc en fonction du regroupement choisi.

Équipes

Pour créer une séquence de déploiement basée sur une équipe, vous devez regrouper vos clusters dans des niveaux d'accès d'équipe. Pour ce faire, commencez par organiser vos clusters dans des parcs en fonction des environnements de déploiement tels que les tests, la préproduction et la production, comme indiqué dans l'exemple de séquence de déploiement basée sur un niveau d'accès. Vous pouvez ensuite subdiviser vos clusters en portées pour les clusters de différentes équipes.

  1. Pour chaque cluster de la séquence, enregistrez votre cluster auprès d'un parc. Le cluster doit être enregistré dans le parc du projet dans lequel vous allez créer le niveau d'accès d'équipe de ce cluster. Si vous souhaitez enregistrer un cluster dans un parc dans un autre projet hôte, assurez-vous d'avoir défini les autorisations nécessaires pour l'enregistrement multiprojet.
  2. Créez deux ou trois niveaux d'accès d'équipe pour organiser vos clusters. Créez chaque niveau d'accès dans le projet hôte du parc de l'équipe correspondante. Une séquence de déploiement peut comporter jusqu'à trois niveaux d'accès d'équipe.

    Consultez la documentation de référence sur gcloud container fleet scopes create pour obtenir la liste complète des options. Avec la commande create, vous pouvez utiliser les options des instructions pour créer une séquence de déploiement.

  3. Ajoutez chaque cluster à un champ d'application.

Créer une séquence de déploiement

Une séquence de déploiement est organisée sous la forme d'une liste associée avec cinq éléments maximum.

Lorsque vous créez une séquence de déploiement, vous définissez les propriétés suivantes pour chaque groupe de clusters, soit un parc, soit un niveau d'accès d'équipe :

  • Groupe en amont : parc ou niveau d'accès d'équipe en amont, qui qualifie de nouvelles versions pour le groupe en aval. Vous ne configurez pas de groupe en amont pour le premier groupe d'une séquence.
  • Temps de stabilisation : le temps de stabilisation d'un groupe correspond au délai entre la fin des mises à niveau (ou le déploiement a pris 30 jours) et le début des mises à niveau sur le groupe en aval. Pour en savoir plus, consultez la section Fonctionnement de la qualification des versions dans une séquence de déploiement.
Google Cloud

Parcs (gcloud)

Les instructions suivantes utilisent la commande gcloud container fleet clusterupgrade update, mais vous pouvez définir les mêmes propriétés avec la commande gcloud container fleet clusterupgrade create.

Pour chacune des commandes suivantes, remplacez SOAK_TIME par le temps de stabilisation de la flotte que vous mettez à jour.

Créez une séquence de déploiement :

  1. Définissez le temps de stabilisation pour le premier parc de la séquence :

    gcloud container fleet clusterupgrade update \
        --default-upgrade-soaking=SOAK_TIME \
        --project=FIRST_FLEET_PROJECT_ID
    

    Remplacez FIRST_FLEET_PROJECT_ID par l'ID du projet hôte du parc.

  2. Définissez le parc en amont et le temps de stabilisation pour le deuxième parc dans la séquence :

    gcloud container fleet clusterupgrade update \
        --upstream-fleet=FIRST_FLEET_PROJECT_ID \
        --default-upgrade-soaking=SOAK_TIME \
        --project=SECOND_FLEET_PROJECT_ID
    

    Remplacez FIRST_FLEET_PROJECT_ID par l'ID du projet hôte du premier parc et SECOND_FLEET_PROJECT_ID par l'ID du projet hôte du parc.

  3. Facultatif: si vous souhaitez disposer de plus de deux parcs dans une séquence de déploiement, définissez le parc en amont pour les parcs suivants de la séquence.

    La commande suivante définit le parc en amont pour le troisième parc de la séquence. Si vous souhaitez ajouter un quatrième ou un cinquième parc, répétez cette étape en suivant le même schéma pour remplacer les variables par les ID de projet des projets hôtes de parc respectifs (parc précédent et parc suivant).

    Définissez le parc en amont pour le parc suivant dans la séquence:

    gcloud container fleet clusterupgrade update \
        --upstream-fleet=SECOND_FLEET_PROJECT_ID \
        --default-upgrade-soaking=SOAK_TIME \
        --project=THIRD_FLEET_PROJECT_ID
    

    Remplacez SECOND_FLEET_PROJECT_ID par l'ID du projet hôte du deuxième parc et THIRD_FLEET_PROJECT_ID par l'ID du projet hôte du parc.

Parcs (console)

  1. Accédez à la page Séquençage du déploiement dans la console Google Cloud .

    Accéder à la page "Séquençage du déploiement"

  2. Cliquez sur Créer une séquence de déploiement.

  3. Dans le volet Créer une séquence de déploiement, sélectionnez les deux premiers parcs de la séquence:

    1. Dans la section Flotte 1, sélectionnez la première flotte de la séquence.
    2. Dans la section Temps de stabilisation pour le parc en amont, définissez le temps de stabilisation pour le premier parc à l'aide des champs Jours, Heures et Minutes.
    3. Dans la section Flotte 2, sélectionnez la deuxième flotte de la séquence.
    4. Cliquez sur Créer.
  4. Facultatif: Si vous souhaitez disposer de trois parcs ou plus dans cette séquence de déploiement, procédez comme suit:

    1. Dans le graphique de déploiement, cliquez sur l'élément correspondant à la deuxième flotte.
    2. Cliquez sur  Ajouter un parc en aval.
    3. Dans la section Temps de stabilisation pour le parc en amont, définissez le temps de stabilisation pour le deuxième parc à l'aide des champs Jours, Heures et Minutes.
    4. Dans la section Parc suivant dans la séquence, sélectionnez le troisième parc de la séquence.
    5. Cliquez sur Enregistrer.
    6. Répétez les étapes précédentes si vous souhaitez ajouter un quatrième ou un cinquième parc.

Parcs (Terraform)

Cette section explique comment créer une séquence basée sur un parc à l'aide de Terraform. Vous pouvez également utiliser cette ressource pour mettre à jour la séquence. Pour en savoir plus, consultez la documentation de référence sur google_gke_hub_feature.

Pour chacune des commandes suivantes, remplacez SOAK_TIME par le temps de stabilisation de la flotte que vous mettez à jour.

Créez une séquence de déploiement :

  1. Ajoutez le bloc suivant à votre configuration Terraform pour définir le temps de stabilisation du premier parc dans la séquence :

    resource "google_gke_hub_feature" "feature" {
      name = "clusterupgrade"
      location = "global"
      spec {
        clusterupgrade {
          upstream_fleets = []
          post_conditions {
            soaking = "SOAK_TIME"
          }
        }
      }
      project = "FIRST_FLEET_PROJECT_ID"
    }
    

    Remplacez FIRST_FLEET_PROJECT_ID par l'ID du projet hôte du parc.

  2. Ajoutez le bloc suivant à votre configuration Terraform pour définir le parc en amont et le temps de stabilisation du deuxième parc de la séquence :

    resource "google_gke_hub_feature" "feature" {
      name = "clusterupgrade"
      location = "global"
      spec {
        clusterupgrade {
          upstream_fleets = ["FIRST_FLEET_PROJECT_ID"]
          post_conditions {
            soaking = "SOAK_TIME"
          }
        }
      }
      project = "SECOND_FLEET_PROJECT_ID"
    }
    

    Remplacez FIRST_FLEET_PROJECT_ID par l'ID du projet hôte du premier parc et SECOND_FLEET_PROJECT_ID par l'ID du projet hôte du parc.

  3. Facultatif : Si vous souhaitez disposer de trois parcs dans une séquence de déploiement, ajoutez le bloc suivant à votre configuration Terraform pour configurer le parc en amont du parc dans la séquence :

    resource "google_gke_hub_feature" "feature" {
      name = "clusterupgrade"
      location = "global"
      spec {
        clusterupgrade {
          upstream_fleets = ["SECOND_FLEET_PROJECT_ID"]
          post_conditions {
            soaking = "SOAK_TIME"
          }
        }
      }
      project = "THIRD_FLEET_PROJECT_ID"
    }
    

    Remplacez SECOND_FLEET_PROJECT_ID par l'ID du projet hôte du deuxième parc et THIRD_FLEET_PROJECT_ID par l'ID du projet hôte du parc.

    Répétez cette étape si vous souhaitez ajouter une quatrième ou une cinquième flotte.

Équipes (gcloud)

Vous pouvez définir ces propriétés lorsque vous créez ou mettez à jour un niveau d'accès d'équipe. Les instructions suivantes utilisent la commande gcloud container fleet scopes update, mais vous pouvez définir les mêmes propriétés lorsque vous créez un niveau d'accès d'équipe avec la commande gcloud container fleet scopes create.

Pour chacune de ces commandes, remplacez les éléments suivants:

  • Les variables par le nom du niveau d'accès d'équipe correspondant ou par l'ID de projet hôte du parc du niveau d'accès d'équipe.
  • SOAK_TIME avec le temps de stabilisation du champ d'application de l'équipe que vous mettez à jour.

Créez une séquence de déploiement :

  1. Définissez le temps de stabilisation pour le premier champ d'application de la séquence :

    gcloud container fleet scopes update projects/FIRST_SCOPE_PROJECT_ID/locations/global/scopes/FIRST_SCOPE_NAME \
        --default-upgrade-soaking=SOAK_TIME \
        --project=FIRST_SCOPE_PROJECT_ID
    
  2. Définissez le champ d'application en amont et le temps de stabilisation pour le deuxième champ d'application de la séquence :

    gcloud container fleet scopes update projects/SECOND_SCOPE_PROJECT_ID/locations/global/scopes/SECOND_SCOPE_NAME \
        --upstream-scope=projects/FIRST_SCOPE_PROJECT_ID/locations/global/scopes/FIRST_SCOPE_NAME \
        --default-upgrade-soaking=SOAK_TIME \
        --project=SECOND_SCOPE_PROJECT_ID
    
  3. Facultatif : si vous souhaitez disposer de trois niveaux d'accès d'équipe dans une séquence de déploiement, définissez le niveau d'accès d'équipe en amont du troisième niveau d'accès dans la séquence :

    gcloud container fleet scopes update projects/THIRD_SCOPE_PROJECT_ID/locations/global/scopes/THIRD_SCOPE_NAME \
        --upstream-scope=projects/SECOND_SCOPE_PROJECT/locations/global/scopes/SECOND_SCOPE_NAME \
        --default-upgrade-soaking=SOAK_TIME \
        --project=THIRD_SCOPE_PROJECT_ID
    

Vérifier l'état d'une séquence de déploiement

Vous pouvez vérifier l'état d'une séquence de déploiement à l'aide de l'une des méthodes suivantes :

Surveiller une séquence de déploiement dans la console Google Cloud

Google Cloud
  1. Accédez à la page Séquençage du déploiement dans la console Google Cloud .

    Accéder à la page "Séquençage du déploiement"

  2. Affichez la séquence dans la section Surveiller votre séquence de déploiement. Si aucune séquence de déploiement ne s'affiche, passez à une autre séquence de déploiement ou créez une séquence de déploiement si vous ne l'avez pas déjà fait.

Surveiller une séquence de déploiement à l'aide de la console

Sur cette page, vous pouvez afficher la séquence de déploiement associée au parc de votre projet. Vous pouvez afficher la progression d'une séquence de déploiement selon deux méthodes :

  • Afficher l'intégralité de la séquence de déploiement, ou consulter les états des parcs et des clusters individuels dans ces parcs, ainsi que le temps de stabilisation entre les parcs. Vous pouvez également visualiser la séquence où il n'y a pas de mise à niveau active si vous souhaitez vérifier la configuration de la séquence.
  • Filtrer les résultats par type de mise à niveau (plan de contrôle ou nœud) et par version spécifique (par exemple, 1.31.6-gke.500).

Vous pouvez surveiller visuellement l'ensemble de votre séquence de déploiement pendant que GKE met à niveau tous les clusters de la séquence, en qualifiant une nouvelle version dans tous les environnements avant de mettre à niveau les clusters de votre environnement de production. Vous pouvez gérer une séquence de déploiement à l'aide de gcloud CLI et apporter les modifications nécessaires pendant cette surveillance.

Passer à une autre séquence de déploiement

Cette page affiche la séquence de déploiement basée sur un parc si le projet actif dans la console Google Cloud est un projet hôte de parc pour un parc inscrit dans une séquence de déploiement.

Si vous souhaitez afficher une séquence de déploiement différente, sélectionnez un projet hôte de parc associé à une séquence de déploiement différente dans le sélecteur de projets en haut de la page.

Utiliser la CLI gcloud

Utilisez ces commandes dans les sections suivantes pour vérifier la progression des mises à niveau dans une séquence de déploiement. Pour en savoir plus sur les informations fournies, consultez la section Informations d'état pour une séquence de déploiement.

Pour exécuter ces commandes, assurez-vous de disposer des autorisations requises pour chaque projet hôte de parc. Par exemple, si la séquence comporte des champs d'application multiprojets dans différents parcs, vous avez besoin d'autorisations dans chaque projet pour décrire la séquence.

Pour les commandes suivantes, si vous n'avez besoin d'informations que sur un parc ou un champ d'application de la séquence, remplacez l'option --show-linked-cluster-upgrade par --show-cluster-upgrade.

Parcs

Vérifiez l'état d'une séquence de déploiement basée sur un parc :

gcloud container fleet clusterupgrade describe \
    --show-linked-cluster-upgrade --project=FLEET_PROJECT_ID

Remplacez FLEET_PROJECT_ID par l'ID du projet hôte pour n'importe quel parc de la séquence.

Consultez la documentation de référence sur gcloud container fleet clusterupgrade describe pour obtenir la liste complète des options.

Équipes

Vérifiez l'état d'une séquence de déploiement basée sur une équipe :

gcloud container fleet scopes describe SCOPE_NAME \
    --show-linked-cluster-upgrade
    --project=SCOPE_PROJECT_ID

Remplacez SCOPE_NAME par le nom de n'importe quel niveau d'accès d'équipe dans la séquence de déploiement, et SCOPE_PROJECT_ID par l'ID de projet de ce niveau d'accès d'équipe.

Consultez la documentation de référence sur gcloud container fleet scopes describe pour obtenir la liste complète des options.

Pour afficher l'état de clusters individuels dans un parc ou un niveau d'accès d'équipe, exécutez la commande suivante dans le projet hôte du parc et consultez la section membershipStates :

gcloud container fleet features describe clusterupgrade

Informations sur l'état d'une séquence de déploiement

Lorsque vous vérifiez l'état d'un déploiement de version, vous pouvez voir la progression de chaque groupe et de chaque cluster au sein de ce groupe.

Consultez le tableau suivant pour connaître les états potentiels d'un cluster ou d'un groupe :

État Pour un seul cluster Pour un groupe (parc ou équipe)
INÉLIGIBLE Ce cluster n'est pas éligible pour cette mise à niveau. Un ou plusieurs clusters de ce groupe ne sont pas éligibles pour cette mise à niveau.
EN ATTENTE La mise à niveau est en attente sur le cluster ou certains de ses pools de nœuds standards ou groupes de nœuds dans un cluster Autopilot. La mise à niveau n'a démarré sur aucun des clusters du groupe.
IN_PROGRESS (EN_COURS) La mise à niveau est en cours sur le cluster. La mise à niveau a commencé sur au moins un cluster, mais n'est pas terminée sur tous les clusters.
STABILISATION La mise à niveau a été terminée sur le cluster et n'est pas encore stabilisée. La mise à niveau a été terminée sur tous les clusters et n'est pas encore stabilisée.
FORCED_SOAKING La mise à niveau a pris plus de temps (30 jours). Nous l'avons donc forcée à entrer dans la phase de stabilisation. La mise à niveau peut continuer dans le cluster. La mise à niveau a pris plus de temps (30 jours). Nous l'avons donc forcée à entrer dans la phase de stabilisation. La mise à niveau peut continuer dans les clusters.
TERMINÉ La mise à niveau est traitée comme "terminée", ce qui signifie que la mise à niveau a terminé de se stabiliser sur ce cluster. La mise à niveau est considérée comme "terminée" et prête à être utilisée par le groupe en aval, ce qui signifie que la mise à niveau a terminé de se stabiliser.

Dans la sortie de ces commandes, les attributs clusterUpgrade(s).spec et clusterUpgrade(s).state contiennent des informations supplémentaires sur la mise à niveau du cluster, telles que le temps de stabilisation, les remplacements de mise à niveau du cluster et l'état de la mise à niveau.

Gérer une séquence de déploiement

Vous pouvez contrôler les mises à niveau automatiques des clusters avec le séquençage du déploiement de plusieurs manières, comme expliqué dans les sections suivantes.

Modifier le temps de stabilisation d'un groupe

Vous pouvez modifier le délai de stabilisation par défaut pour un groupe ou le délai de stabilisation pour la mise à niveau de ce groupe vers une version spécifique. La valeur maximale est de 30 jours.

Modifier le temps de stabilisation par défaut

Vous pouvez modifier le temps de trempage par défaut dans la console Google Cloud (Preview, séquence de déploiement basée sur un parc uniquement) ou avec gcloud CLI.

Google Cloud

gcloud

Pour modifier la durée de stabilisation par défaut d'un groupe, suivez les instructions de la section Créer une séquence de déploiement en omettant les indicateurs permettant de définir le groupe en amont.

Parcs (console)

  1. Accédez à la page Séquençage du déploiement dans la console Google Cloud .

    Accéder à la page "Séquençage du déploiement"

  2. Affichez la séquence dans la section Surveiller votre séquence de déploiement. Si aucune séquence de déploiement ne s'affiche, passez à une autre séquence de déploiement ou créez une séquence de déploiement si vous ne l'avez pas déjà fait.

  3. Dans le graphique de déploiement, cliquez sur l'élément Temps de pause après l'élément de la flotte pour lequel vous souhaitez modifier le temps de pause.

  4. Cliquez sur  Modifier le temps de trempage.

  5. Dans la section Définir un nouveau temps de trempage, saisissez un nouveau temps de trempage à l'aide des champs Jours, Heures et Minutes.

  6. Pour enregistrer les paramètres, cliquez sur Enregistrer.

Ignorer le temps de stabilisation par défaut

Vous pouvez modifier le temps de stabilisation pour un déploiement de version spécifique afin qu'il soit différent du temps de stabilisation par défaut du groupe. Par exemple, si vous avez déjà qualifié une nouvelle version et que vous souhaitez que les mises à niveau commencent dans le groupe suivant, vous pouvez définir le temps de stabilisation sur zéro. Vous pouvez également l'utiliser si vous souhaitez obtenir plus de temps que le temps de stabilisation par défaut pour qualifier une version spécifique.

Le temps de stabilisation étant défini par groupe, si vous souhaitez remplacer le temps de stabilisation pour d'autres groupes de cette séquence, mettez-les à jour à l'aide de cette même commande avec le nom du parc ou du champ d'application remplacé, en fonction du type de séquence.

Pour les instructions de cette section, remplacez les variables suivantes :

  • SOAK_TIME : temps de stabilisation à utiliser autre que la valeur par défaut (par exemple, "0d" si vous souhaitez ignorer le temps de stabilisation pour un déploiement de version).
  • UPGRADE_NAME : type de mise à niveau, soit k8s_control_plane pour les mises à niveau du plan de contrôle, soit k8s_node pour les mises à niveau des nœuds.
  • VERSION : version de GKE pour laquelle vous souhaitez remplacer le temps de stabilisation par défaut après le déploiement de la version (par exemple, 1.25.2-gke.400) dans ce groupe.

Parcs (gcloud)

Exécutez cette commande dans le projet hôte du parc dans lequel vous souhaitez remplacer le temps de stabilisation utilisé pour le déploiement d'une version spécifique.

Modifiez le temps de stabilisation d'un parc :

gcloud container fleet clusterupgrade update
    --add-upgrade-soaking-override=SOAK_TIME \
    --upgrade-selector=name=UPGRADE_NAME,version=VERSION

Parcs (Terraform)

Ajoutez le bloc gke_upgrades_overrides suivant à votre configuration Terraform dans le bloc clusterupgrade pour remplacer le temps de stabilisation utilisé pour le déploiement d'une version spécifique :

gke_upgrade_overrides {
    upgrade {
      name = "UPGRADE_NAME"
      version = "VERSION"
    }
    post_conditions {
      soaking = "SOAK_TIME"
    }
  }

Équipes (gcloud)

Exécutez cette commande dans le projet hôte du parc du niveau d'accès d'équipe. Remplacez SCOPE_NAME par le nom du niveau d'accès d'équipe pour lequel vous souhaitez ignorer le temps de stabilisation utilisé pour le déploiement d'une version spécifique.

Modifiez le temps de stabilisation d'un niveau d'accès d'équipe :

gcloud container fleet scopes update SCOPE_NAME \
    --add-upgrade-soaking-override=SOAK_TIME \
    --upgrade-selector=name=UPGRADE_NAME,version=VERSION

Mettre à jour les groupes dans une séquence de déploiement

Vous pouvez modifier une séquence de déploiement existante pour ajouter, supprimer ou modifier l'ordre des groupes dans la séquence. Pour effectuer ces modifications, mettez à jour les associations entre les groupes.

Vous pouvez effectuer ces étapes dans la console Google Cloud (preview, séquence de déploiement basée sur un parc uniquement) ou avec la gcloud CLI.

Google Cloud

Parcs (gcloud)

Exécutez la commande gcloud container fleet clusterupgrade update avec l'option --upstream-fleet pour ajouter ou modifier des flottes en amont. Utilisez l'option --reset-upstream-fleet pour supprimer une flotte en amont.

Vous pouvez effectuer les actions suivantes:

  • Ajoutez un autre parc au début de la séquence de déploiement en ajoutant un parc en amont au premier parc de la séquence.
  • Modifiez l'ordre des parcs dans la séquence de déploiement en modifiant les associations de parcs en amont.
  • Supprimez le premier parc de la séquence de déploiement en supprimant le parc en amont du deuxième parc.

Parcs (console)

  1. Accédez à la page Séquençage du déploiement dans la console Google Cloud .

    Accéder à la page "Séquençage du déploiement"

  2. Affichez la séquence dans la section Surveiller votre séquence de déploiement. Si aucune séquence de déploiement ne s'affiche, passez à une autre séquence de déploiement ou créez une séquence de déploiement si vous ne l'avez pas déjà fait.

  3. Dans le Graphique de déploiement, cliquez sur les éléments des flottes existantes dans la séquence. Après avoir cliqué sur ces éléments, vous pouvez effectuer certaines des actions suivantes pour apporter les modifications:

    • Cliquez sur  Ajouter un parc en aval.
    • Cliquez sur  Ajouter un parc en amont.
    • Cliquez sur  Supprimer la flotte.

Vous pouvez effectuer les actions suivantes:

  • Ajoutez un autre parc à la fin de la séquence de déploiement en ajoutant un parc en aval au dernier parc de la séquence.
  • Ajoutez un autre parc au début de la séquence de déploiement en ajoutant un parc en amont au premier parc de la séquence.
  • Modifiez l'ordre des parcs dans la séquence de déploiement en supprimant des parcs, puis en les ajoutant à nouveau avec un autre parc en amont ou en aval.
  • Supprimez le premier parc de la séquence de déploiement.
  • Supprimez le dernier parc de la séquence de déploiement.
  • Supprimez le parc du milieu dans la séquence de déploiement, après avoir supprimé le premier ou le dernier parc de la séquence.

Équipes (gcloud)

Exécutez la commande gcloud container fleet scopes update avec l'option --upstream-scope pour ajouter ou modifier des champs d'application d'équipe en amont. Utilisez l'indicateur --reset-upstream-scope pour supprimer un champ d'application d'équipe en amont.

Vous pouvez effectuer les actions suivantes:

  • Ajoutez un autre niveau d'accès à l'équipe au début de la séquence de déploiement en ajoutant un niveau d'accès à l'équipe en amont au premier niveau d'accès à l'équipe de la séquence.
  • Modifiez l'ordre des niveaux d'accès d'équipe dans la séquence de déploiement en modifiant les associations de niveaux d'accès d'équipe en amont.
  • Supprimez le premier niveau d'accès de l'équipe dans la séquence de déploiement en supprimant le niveau d'accès de l'équipe en amont du deuxième niveau d'accès de l'équipe.

Retarder l'achèvement du déploiement de la version du groupe

Si vous devez empêcher temporairement un groupe de terminer le déploiement d'une nouvelle version sur ses clusters, vous pouvez ajouter une exclusion de maintenance à tout cluster qui n'est pas mis à niveau vers la version cible. Cela peut suspendre le délai d'évaluation d'un groupe ou le laisser en aval pendant 30 jours maximum. Au bout de 30 jours, le groupe commence à se stabiliser.

Vous pouvez également modifier le temps de stabilisation pour ce groupe sur 30 jours afin de maximiser la durée d'attente de la séquence de déploiement avant de passer au groupe suivant.

Si vous devez retarder davantage les mises à niveau à venir pour le groupe suivant, vous pouvez utiliser des exclusions de maintenance pour les clusters du groupe suivant.

Passer d'une séquence de déploiement basée sur un parc à une séquence de déploiement basée sur une équipe

Vous pouvez passer de séquences basées sur un parc à des séquences basées sur une équipe, et inversement. Les instructions supposent que vous effectuez un transfert entre des séquences organisées comme celles illustrées dans les diagrammes d'exemple.

Des parcs vers les équipes

Pour passer d'une séquence de déploiement basée sur un parc à une séquence de déploiement basée sur une équipe procédez comme suit :

  1. Configurez des exclusions de maintenance pour tous les clusters de chacun de vos parcs afin d'éviter les mises à niveau lorsque vous modifiez la configuration.
  2. Assurez-vous d'avoir activé GKE Enterprise dans vos projets hôtes de parc.
  3. Dans chacun de vos parcs, créez un ou plusieurs niveau d'accès d'équipe pour subdiviser le groupe de clusters de ce parc.
  4. Créez une ou plusieurs séquences de déploiement entre les champs d'application correspondants dans chaque parc.
  5. Ajoutez vos clusters à leurs nouveaux niveaux d'accès d'équipe.
  6. Supprimez les exclusions de maintenance que vous avez configurées pour cette modification.

Des équipes vers les parcs

Pour passer d'une séquence de déploiement basée sur un niveau d'accès d'équipe à une séquence de déploiement basée sur un parc, procédez comme suit :

  1. Configurez des exclusions de maintenance pour tous les clusters de chacun de vos parcs afin d'éviter les mises à niveau lorsque vous modifiez la configuration.
  2. Créez une séquence de déploiement entre vos parcs.
  3. Supprimez vos clusters de leurs niveaux d'accès d'équipe. Désormais, ces clusters ne sont enregistrés que dans les parcs respectifs de leur niveau d'accès que, à l'étape précédente, vous avez rejoints dans une séquence de déploiement.
  4. Supprimez les niveaux d'accès d'équipe.
  5. Supprimez les exclusions de maintenance que vous avez configurées pour cette modification.

Supprimer une séquence

Pour supprimer une séquence, vous devez supprimer les associations en amont pour chacun des groupes, à l'exception du premier. Le premier groupe n'a pas de groupe en amont.

Vous pouvez effectuer ces étapes dans la console Google Cloud (preview, séquence de déploiement basée sur un parc uniquement) ou avec la gcloud CLI.

Google Cloud

Parcs (gcloud)

Exécutez la commande suivante dans le projet hôte de parc de chacun des parcs dans la séquence de déploiement, à l'exception du premier parc:

gcloud container fleet clusterupgrade update --reset-upstream-fleet

Parcs (console)

  1. Accédez à la page Séquençage du déploiement dans la console Google Cloud .

    Accéder à la page "Séquençage du déploiement"

  2. Affichez la séquence dans la section Surveiller votre séquence de déploiement. Si aucune séquence de déploiement ne s'affiche, passez à une autre séquence de déploiement ou créez une séquence de déploiement si vous ne l'avez pas déjà fait.

  3. Dans le graphique de déploiement, cliquez sur l'élément de la dernière flotte.

  4. Cliquez sur  Supprimer la flotte.

  5. Pour supprimer la flotte, cliquez sur Supprimer.

  6. Répétez les trois étapes précédentes jusqu'à ce qu'il ne reste que la première flotte.

Équipes (gcloud)

Exécutez la commande suivante dans le projet hôte de parc des deuxième et troisième niveaux d'accès d'équipe dans la séquence de déploiement :

gcloud container fleet scopes update SCOPE_NAME --reset-upstream-scope

Remplacez SCOPE_NAME par les noms des deuxième et troisième niveaux d'accès d'équipe, respectivement.

Dépannage

Résoudre les problèmes d'éligibilité au déploiement

Si tous les clusters d'une séquence de déploiement n'ont pas la même cible de mise à niveau, GKE risque de ne pas pouvoir procéder aux mises à niveau des clusters. Les mises à niveau automatiques ne peuvent pas être effectuées si un groupe en amont ne qualifie pas une cible de mise à niveau à transmettre au groupe en aval. Les mises à niveau automatiques ne peuvent pas non plus être effectuées si les clusters du groupe en amont qualifient une cible de mise à niveau non valide pour les clusters du groupe en aval.

Pour vérifier si votre séquence de déploiement présente des problèmes d'éligibilité, vérifiez l'état de la séquence de déploiement. Si un groupe n'est pas éligible, suivez les instructions pour afficher l'état des clusters individuels dans un groupe.

Pour faire progresser immédiatement les mises à niveau des clusters, supprimez tous les clusters dont l'état est INELIGIBLE en suivant les instructions de la section Faire progresser les déploiements partiellement éligibles.

Corriger l'éligibilité d'un groupe

Si un cluster n'est pas éligible car il utilise une version antérieure (par exemple, la plupart des clusters du groupe sont mis à niveau de la version 1.23 vers la version 1.24 et un cluster se trouve dans la version 1.22), vous pouvez mettre à jour le cluster manuellement vers la version 1.24 pour résoudre l'écart de version.

Dans un groupe, si un cluster n'est pas éligible en raison d'une version ultérieure (par exemple, la plupart des clusters du groupe sont mis à niveau de la version 1.23 à la version 1.24 et un cluster se trouve dans la version 1.25), vous ne pouvez pas revenir manuellement au cluster pour résoudre l'écart de version et supprimer le cluster.

Correction de l'éligibilité entre les groupes

Entre les groupes, en cas de non-concordance dans les cibles de mise à niveau où le groupe en aval se trouve sur une version plus récente (par exemple, le groupe en amont est passé de la version 1.23 à la version 1.24, et les clusters du groupe en aval se trouvent dans la version 1.25), vous pouvez mettre à niveau manuellement les clusters du groupe en amont vers la version 1.25 pour vous assurer que les mises à niveau se poursuivent.

Entre les groupes, en cas de non-concordance dans les cibles de mise à niveau où le groupe en aval se trouve dans une version antérieure (par exemple, le groupe en amont est passé de 1.24 à 1.25, et les clusters du groupe en aval se trouvent dans la version 1.23), vous pouvez mettre à niveau manuellement les clusters du groupe en aval vers la version 1.24 ou 1.25 pour vous assurer que les mises à niveau se poursuivent.

Faire progresser les déploiements partiellement éligibles

Si les mises à niveau d'un cluster dans un groupe ne se terminent pas en raison de problèmes d'éligibilité au déploiement (par exemple, des écarts de version au sein d'un groupe), vous pouvez supprimer du groupe les clusters qui ne sont pas éligibles à la mise à niveau cible du groupe pour terminer le déploiement de la version et commencer le temps de stabilisation, ou passer au groupe suivant dans la séquence de déploiement. Vous pouvez également supprimer un cluster d'un groupe pour d'autres raisons, par exemple si l'utilisation de ce cluster n'est plus liée aux autres clusters du groupe.

Suivez les instructions pour annuler l'enregistrement d'un cluster d'un parc ou supprimer des clusters des niveau d'accès d'équipe, selon le type de séquence de déploiement.

Une fois que vous avez supprimé tous les clusters qui empêchent le déploiement de la version d'un groupe, celui-ci peut se terminer. Pour vérifier cela, suivez les instructions de la section Vérifier l'état d'un déploiement de version.

Étapes suivantes