Orchestrez les mises à jour sur plusieurs clusters à l’aide d’Azure Kubernetes Fleet Manager

Les administrateurs de plateforme qui gèrent des flottes Kubernetes avec un grand nombre de clusters rencontrent souvent des problèmes lors de la préproduction de leurs mises à jour sur plusieurs clusters de façon sûre et prévisible. Pour résoudre ce problème, Kubernetes Fleet Manager (Fleet) vous permet d’orchestrer les mises à jour sur plusieurs clusters à l’aide d’exécutions de mise à jour, d’étapes, de groupes et de stratégies.

Screenshot of the Azure portal pane for a fleet resource, showing member cluster Kubernetes versions and node images in use across all node pools of member clusters.

Prérequis

  • Lisez la vue d’ensemble des concepts de cette fonctionnalité, qui fournit une explication des stratégies, des exécutions, des index et des groupes de mises à jour référencés dans ce document.

  • Vous devez disposer d’une ressource de flotte avec un ou plusieurs clusters membres. Si ce n’est pas le cas, suivez le guide de démarrage rapide pour créer une ressource Fleet et rejoindre des clusters Azure Kubernetes Service (AKS) en tant que membres. Cette procédure pas à pas illustre une ressource de flotte avec cinq clusters membres AKS comme exemple.

  • Définissez les variables d’environnement suivantes :

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    
  • Si vous suivez les instructions Azure CLI de cet article, vous avez besoin d’Azure CLI version 2.53.1 ou ultérieure installée. Pour installer ou mettre à niveau Azure CLI, consultez Installer l’interface de ligne de commande Microsoft Azure.

  • Vous avez également besoin de l’extension Azure CLI fleet , que vous pouvez installer en exécutant la commande suivante :

    az extension add --name fleet
    

    Exécutez la commande suivante pour effectuer la mise à jour vers la dernière version de l’extension publiée :

    az extension update --name fleet
    

Mettez à jour tous les clusters un par un

  1. Dans la page de votre ressource Azure Kubernetes Fleet Manager, accédez au menu mise à jour multi-cluster, puis sélectionnez Créer.

  2. Vous pouvez choisir Un par un ou Étapes.

    Screenshot of the Azure portal pane for creating update runs that update clusters one by one in Azure Kubernetes Fleet Manager.

  3. Pour étendue de mise à niveau, vous pouvez choisir de mettre à jour à la fois la version Kubernetes et la version d’image de nœud, ou vous ne pouvez mettre à jour que votre version d’image Node uniquement.

    Screenshot of the Azure portal pane for creating update runs. The upgrade scope section is shown.

    Pour l’image de nœud, les options suivantes sont disponibles :

    • Dernière : met à jour chaque cluster AKS dans l’exécution de mise à jour vers la dernière image disponible pour ce cluster dans sa région.
    • Cohérent : comme il est possible pour une exécution de mise à jour d’avoir des clusters AKS dans plusieurs régions où les dernières images de nœud disponibles peuvent être différentes (vérifiez suivi de mise en production pour plus d’informations). L’exécution de la mise à jour sélectionne l’image courante la plus récente dans toutes ces régions pour obtenir une cohérence.

Mettre à jour les clusters dans un ordre spécifique

Les groupes et les phases de mise à jour fournissent un contrôle supplémentaire sur la séquence qui s’exécute lorsque vous mettez à jour les clusters. Dans un index de mise à jour, les mises à jour sont appliquées à tous les différents groupes de mises à jour en parallèle ; dans un groupe de mises à jour, les clusters membres sont mis à jour séquentiellement.

Affecter un cluster à un groupe de mises à jour

Vous pouvez affecter un cluster membre à un groupe de mises à jour spécifique de l’une des deux manières suivantes.

  • Affecter au groupe lors de l’ajout d’un cluster membre à la flotte. Par exemple :
  1. Dans la page de votre ressource Azure Kubernetes Fleet Manager, accédez à clusters membres.

    Screenshot of the Azure portal page for Azure Kubernetes Fleet Manager member clusters.

  2. Spécifiez le groupe de mise à jour auquel le cluster membre doit appartenir.

    Screenshot of the Azure portal page for adding member clusters to Azure Kubernetes Fleet Manager and assigning them to groups.

  • La deuxième méthode consiste à affecter un membre de flotte existant à un groupe de mises à jour. Par exemple :
  1. Dans la page de votre ressource Azure Kubernetes Fleet Manager, accédez à clusters membres. Choisissez les clusters membres souhaités, puis sélectionnez Affecter un groupe de mises à jour.

    Screenshot of the Azure portal page for assigning existing member clusters to a group.

  2. Spécifiez le nom du groupe, puis sélectionnez Attribuer.

    Screenshot of the Azure portal page for member clusters that shows the form for updating a member cluster's group.

Remarque

Tout membre de la flotte ne peut être qu’une partie d’un groupe de mises à jour, mais un groupe de mises à jour peut avoir plusieurs membres de flotte à l’intérieur de celui-ci. Un groupe de mises à jour lui-même n’est pas un type de ressource distinct. Les groupes de mises à jour sont simplement des chaînes représentant des références des membres de la flotte. Par conséquent, si tous les membres de flotte avec des références à un groupe de mise à jour commun sont supprimés, ce groupe de mises à jour spécifique cesse également d’exister.

Définir une exécution et des phases de mise à jour

Vous pouvez définir une exécution de mise à jour à l’aide des index de mise à jour afin de déterminer séquentiellement l’ordre d’application des mises à jour vers différents groupes de mises à jour. Par exemple, un premier index de mise à jour peut mettre à jour les clusters membres de l’environnement de test, et un deuxième index de mise à jour met ensuite à jour les clusters membres de l’environnement de production. Vous pouvez également spécifier un temps d’attente entre les étapes de mise à jour.

  1. Dans la page de votre ressource Azure Kubernetes Fleet Manager, accédez à Mise à jour multi-cluster, puis sélectionnez Créer.

  2. Sélectionnez étapes, puis choisissez image Node (dernière) + version Kubernetes ou image Node (dernière), en fonction de l’étendue de mise à niveau souhaitée.

  3. Sous étapes, sélectionnez Créer une étape. Vous pouvez maintenant spécifier le nom de l’étape et la durée d’attente après chaque étape.

    Screenshot of the Azure portal page for creating a stage and defining wait time.

  4. Choisissez les groupes de mises à jour que vous souhaitez inclure dans cette phase.

    Screenshot of the Azure portal page for stage creation that shows the selection of upgrade groups.

  5. Après avoir défini toutes vos phases et les triez à l’aide de la Monter et Descendre des contrôles, passez à la création de l’exécution de la mise à jour.

  6. Dans le menu Mise à jour multi-cluster, choisissez l’exécution de mise à jour, puis sélectionnez Démarrer.

Créer une exécution de mise à jour à l’aide de stratégies de mise à jour

Dans la section précédente, la création d’une exécution de mise à jour nécessite les étapes, les groupes et leur ordre à spécifier à chaque fois. Les stratégies de mise à jour simplifient cette opération en vous permettant de stocker des modèles pour les exécutions de mises à jour.

Remarque

Il est possible de créer plusieurs exécutions de mise à jour avec des noms uniques à partir de la même stratégie de mise à jour.

Lorsque vous créez vos exécutions de mise à jour, vous avez la possibilité de créer une stratégie de mise à jour en même temps, en enregistrant efficacement l’exécution en tant que modèle pour les exécutions de mises à jour suivantes.

  1. Enregistrez une stratégie de mise à jour lors de la création d’une exécution de mise à jour :

    A screenshot of the Azure portal showing update run stages being saved as an update strategy.

  2. La stratégie de mise à jour que vous avez créée peut être référencée ultérieurement lors de la création de nouvelles exécutions de mises à jour suivantes :

    A screenshot of the Azure portal showing the creation of a new update run. The 'Copy from existing strategy' button is highlighted.