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.
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
Dans la page de votre ressource Azure Kubernetes Fleet Manager, accédez au menu mise à jour multi-cluster, puis sélectionnez Créer.
Sélectionner Un par un met à niveau tous les clusters membres de la flotte en séquence un par un.
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
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 :
- La deuxième méthode consiste à affecter un membre de flotte existant à un groupe de mises à jour. Par exemple :
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.
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.
Indiquez un nom pour votre exécution de mise à jour, puis sélectionnez « Phases » pour le type de séquence de mise à jour.
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.
Choisissez les groupes de mises à jour que vous souhaitez inclure dans cette phase.
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.
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
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.
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.
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.
Méthode 2 : accédez à Mise à jour multi-cluster, puis sélectionnez Créer sous l’onglet Stratégie.
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 :
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.
Sous l’onglet Mise à jour multi-cluster de la ressource de flotte, vous pouvez arrêter une exécution de mise à jour 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.
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.