Partager via


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.

Capture d’écran du volet du Portail Azure d’une ressource de flotte illustrant des images de nœud et des versions Kubernetes de cluster membre utilisées dans tous les pools de nœuds de clusters membres.

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
    

Remarque

Les exécutions de mise à jour honore les fenêtres de maintenance planifiée que vous définissez au niveau du cluster AKS. Pour obtenir plus d’informations, consultez Maintenance planifiée sur plusieurs clusters membres, qui explique comment les exécutions de mises à jour gèrent des clusters membres qui ont été configurés avec des fenêtres de maintenance planifiées.

L’exécution de mises à jour prend en charge deux options pour la séquence dans laquelle les clusters sont mis à niveau :

  • Un par un : si cela ne vous intéresse pas de contrôler la séquence dans laquelle les clusters sont mis à niveau, one-by-one offre une approche simple pour mettre à niveau tous les clusters membres de la flotte dans la séquence un par un
  • Séquence de contrôle des clusters à l’aide de groupes de mise à jour et de phases : si vous souhaitez contrôler la séquence dans laquelle les clusters sont mis à niveau, vous pouvez structurer les clusters membres dans les groupes de mises à jour et les phases de mise à jour. De plus, cette séquence peut être stockée en tant que modèle sous la forme d’une stratégie de mise à jour. Les exécutions de mise à jour peuvent être créées ultérieurement à partir de stratégies de mise à jour au lieu de définir la séquence chaque fois qu’une exécution de mise à jour doit être créée en fonction des phases.

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. Sélectionner Un par un met à niveau tous les clusters membres de la flotte en séquence un par un.

    Capture d’écran du volet du Portail Azure liée à la création d’exécutions de mises à jour qui mettent à jour des clusters un par an dans Azure Kubernetes Fleet Manager.

  3. Pour étendue de mise à niveau, vous pouvez choisir l’une des trois options suivantes :

    • Version de Kubernetes pour les pools de nœuds et de plan de contrôle
    • Version de Kubernetes pour uniquement le plan de contrôle du cluster
    • Version de l’image de nœud uniquement

    Capture d’écran du volet du Portail Azure illustrant la création d’exécutions de mises à jour. La section d’étendue de mise à niveau s’affiche.

    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.

    Capture d’écran de la page du Portail Azure pour des clusters membres Azure Kubernetes Fleet Manager.

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

    Capture d’écran de la page du Portail Azure permettant d’ajouter des clusters membres dans Azure Kubernetes Fleet Manager et de les attribuer à des groupes.

  • 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.

    Capture d’écran de la page du Portail Azure permettant d’attribuer des clusters membres existants à un groupe.

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

    Capture d’écran de la page du Portail Azure pour des clusters membres qui montre le formulaire de mise à jour du groupe d’un cluster membre.

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 classer séquentiellement l’application des mises à jour vers différents groupes de mises à jour. Par exemple, une première phase de mises à jour peut mettre à jour les clusters membres de l’environnement de test, et une deuxième phase de mises à jour met à 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. Sous l’onglet Exécutions, sélectionnez Créer.

  2. Indiquez un nom pour votre exécution de mise à jour, puis sélectionnez « Phases » pour le type de séquence de mise à jour.

    Capture d’écran de la page du portail Azure pour choisir le mode Phases dans l’exécution de la mise à jour.

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

    Capture d’écran de la page du Portail Azure permettant de créer une phase et de définir un temps d’attente.

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

    Capture d’écran de la page du Portail Azure pour la création de phases qui montre la sélection de groupes de mises à jour.

  5. Une fois que vous avez défini toutes vos phases, vous pouvez les organiser à l’aide des contrôles Déplacer vers le haut et Déplacer vers le bas.

  6. Pour étendue de mise à niveau, vous pouvez choisir l’une des trois options suivantes :

    • Version de Kubernetes pour les pools de nœuds et de plan de contrôle
    • Version de Kubernetes pour uniquement le plan de contrôle du cluster
    • Version de l’image de nœud uniquement

    Capture d’écran du volet du Portail Azure illustrant la création d’exécutions de mises à jour. La section d’étendue de mise à niveau s’affiche.

    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.
  7. Cliquez sur Créer en bas de la page pour créer l’exécution de la mise à jour. Spécifier et organiser les phases à chaque création d’exécution de mise à jour peut être répétitif et laborieux. Les stratégies de mise à jour simplifient ce processus en vous permettant de stocker des modèles pour les exécutions de mises à jour. Pour plus d’informations, consultez Mise à jour de la création et de l’utilisation de stratégie.

  8. 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

Créer une exécution de mise à jour nécessite de spécifier à chaque fois les phases, les groupes et leur ordre. Les stratégies de mise à jour simplifient ce processus 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.

Créer une stratégie de mise à jour : il existe deux manières de créer une stratégie de mise à jour :

  • Méthode 1 : enregistrez une stratégie de mise à jour lors de la création d’une exécution de mise à jour.

    Capture d’écran du Portail Azure illustrant des phases d’exécution de mise à jour étant enregistrées en tant que stratégie de mise à jour.

  • Méthode 2 : accédez à Mise à jour multi-cluster, puis sélectionnez Créer sous l’onglet Stratégie.

    Capture d’écran du portail Azure illustrant la création d’une stratégie de mise à jour.

Utiliser une stratégie de mise à jour pour créer une exécution de mise à jour : 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 des mises à jour qui s’en suivent :

Capture d’écran du Portail Azure illustrant la création d’une exécution de mise à jour. Le bouton « Copier à partir d’une stratégie existante » est mis en évidence.

Gérer une exécution de mises à jour

Il existe quelques options pour gérer les exécutions de mises à jour :

  • Sous l’onglet Mise à jour multi-cluster de la ressource de flotte, vous pouvez démarrer une exécution de mises à jour qui se trouve dans l’état Non démarré ou Échec.

    Capture d’écran du portail Azure montrant comment démarrer une exécution de mise à jour dans l’état « Non démarré ».

  • Sous l’onglet Mise à jour multi-cluster de la ressource de flotte, vous pouvez arrêter une exécution de mise à jour en cours.

    Capture d’écran du portail Azure montrant comment arrêter une exécution de mise à jour dans l’état « En cours ».

  • Dans n’importe quelle exécution de mise à jour dans l’état Non démarré, Échec ou En cours, vous pouvez sélectionner n’importe quelle phase et ignorer la mise à niveau.

    Capture d’écran du portail Azure montrant comment ignorer la mise à niveau d’une phase spécifique dans une exécution de mise à jour.

    Vous pouvez également ignorer la mise à niveau au niveau du groupe de mise à jour ou du cluster membre.

    Pour plus d’informations sur les exécutions, les phases et les groupes, consultez Vue d’ensemble conceptuelle des états d’exécution des mises à jour et ignorer le comportement.