Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : ✔️ Gestionnaire de flotte ✔️ Gestionnaire de flotte avec cluster hub
Les administrateurs peuvent contrôler la séquence de mises à jour des clusters gérés par la flotte en définissant une série d’étapes et de groupes. Ils peuvent configurer quand les approbations et les pauses doivent se produire dans ces phases et groupes. L’intégralité de la configuration peut être enregistrée sous la forme d’une stratégie de mise à jour qui peut être gérée indépendamment des exécutions de mises à jour ou des mises à niveau automatiques, ce qui permet de réutiliser les stratégies en fonction des besoins.
Cet article explique comment définir des stratégies de mise à jour à l’aide de groupes et d’étapes.
Prérequis
Lisez la vue d’ensemble conceptuelle des mises à jour de la flotte, qui fournit une explication des exécutions de mises à jour, des phases, des groupes et des stratégies référencées dans ce guide.
Vous devez avoir une ressource Fleet 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.
Définissez les variables d’environnement suivantes :
export GROUP=<resource-group> export FLEET=<fleet-name> export CLUSTERID=<aks-cluster-resource-id> export STRATEGY=<strategy-name>Si vous suivez les instructions Azure CLI de cet article, installez la dernière version du Azure CLI. Pour installer ou mettre à niveau Azure CLI, consultez Installer l’interface de ligne de commande Microsoft Azure.
Vous avez également besoin de l’extension
fleetAzure CLI. Pour l’installer, exécutez la commande suivante :az extension add --name fleetExécutez la commande
az extension updatepour effectuer une mise à jour vers la dernière version de l’extension publiée :az extension update --name fleet
Sélectionner des clusters pour votre stratégie
Il existe deux façons de sélectionner les clusters inclus dans chaque étape et groupe de votre stratégie de mise à jour pour contrôler la séquence de mises à jour :
-
Étiquettes de membre (recommandé) : affectez des étiquettes à chaque membre de la flotte et utilisez
memberSelectorpour sélectionner des membres selon ces étiquettes. Chaque membre peut avoir plusieurs étiquettes. - Groupes de mises à jour : attribuez un groupe de mises à jour à chaque membre de la flotte, puis définissez des groupes dans votre stratégie qui correspondent à ces noms de groupe. Chaque membre ne peut appartenir qu’à un seul groupe.
Créer une stratégie de mise à jour à l’aide de sélecteurs de membres (aperçu)
Utilisez des étiquettes de membre pour sélectionner des clusters dans vos stratégies de mise à jour. Ils offrent une plus grande flexibilité. Pour des détails conceptuels, consultez Regroupement des clusters à l'aide des étiquettes de membres.
Important
Les fonctionnalités en préversion de Azure Kubernetes Fleet Manager sont disponibles en libre-service, sur une base d'adhésion volontaire. Les versions préliminaires sont fournies « en l’état » et « selon leur disponibilité » et ne sont pas couvertes par les accords de niveau de service ni par la garantie limitée. Les versions préliminaires d'Azure Kubernetes Fleet Manager sont partiellement couvertes par le support client sur la base du meilleur effort. Par conséquent, ces fonctionnalités ne sont pas destinées à une utilisation en production.
Appliquer des étiquettes sur des clusters membres
Appliquer des étiquettes lors de l’ajout d’un cluster membre à la flotte
Utilisez la az fleet member create commande pour appliquer des étiquettes à vos membres de la flotte. L’exemple suivant applique deux étiquettes au cluster membre : env=staging et tier=frontend:
az fleet member create \
--resource-group $GROUP \
--fleet-name $FLEET \
--name member1 \
--member-cluster-id $CLUSTERID \
--labels "env=staging tier=frontend"
Appliquer des étiquettes à un membre de flotte existant
Utilisez la az fleet member update commande pour appliquer des étiquettes à vos membres de la flotte.
az fleet member update \
--resource-group $GROUP \
--fleet-name $FLEET \
--name member1 \
--labels "env=staging tier=frontend"
Créer une stratégie de mise à jour
Une stratégie de mise à jour se compose d’une ou plusieurs phases, où une étape peut contenir un ou plusieurs groupes de mises à jour.
Remarque
Une expérience du portail Azure sera disponible avant la disponibilité générale de cette fonctionnalité.
Créez un fichier JSON pour définir les phases et les groupes pour l’exécution de mises à jour. Les étapes s’exécutent de manière séquentielle dans l’ordre dans lequel elles apparaissent dans le fichier JSON. Les groupes s’exécutent en parallèle dans chaque étape. L’exemple de fichier suivant (example-labels-strategy.json) définit une stratégie avec deux étapes à l’aide
memberSelectorde la sélection de clusters par leurs étiquettes et inclut des paramètres facultatifsmaxConcurrency:- L’étape
stagingutilise un niveaumemberSelectorintermédiaire pour sélectionner tous les clusters avec l’étiquetteenv=staginget créer un groupe implicite. - L’étape
productionutilise un niveaumemberSelectorintermédiaire pour préfiltrer tous les clusters avec l’étiquetteenv=production, puis définit deux groupes, chacun avec son proprememberSelectorpour sélectionner des clusters par l’étiquettetier.
Lorsqu'on définit
memberSelectorsur un groupe, le champnamedu groupe est utilisé uniquement comme identificateur d’affichage pour la création de rapports d’état et la journalisation, et n’est plus utilisé pour la sélection des membres de la flotte basée sur la mise à jour du groupe.{ "stages": [ { "name": "staging", "memberSelector": { "byLabel": "env=staging" }, "maxConcurrency": "1", "afterStageWaitInSeconds": 600 }, { "name": "production", "memberSelector": { "byLabel": "env=production" }, "maxConcurrency": "4", "groups": [ { "name": "frontend", "memberSelector": { "byLabel": "tier=frontend" }, "maxConcurrency": "3" }, { "name": "backend", "memberSelector": { "byLabel": "tier=backend" }, "maxConcurrency": "3" } ] } ] }- L’étape
Remarque
Le maxConcurrency champ est facultatif et contrôle le nombre de clusters pouvant être mis à niveau simultanément à l’étape ou au niveau du groupe. Utilisez une plus grande valeur pour mettre à niveau les clusters plus rapidement dans votre flotte, ou une valeur plus petite pour un déploiement plus contrôlé qui limite le rayon d’explosion si des problèmes se produisent.
Lorsqu’une étape utilise memberSelector sans groupes (par exemple staging), tous les membres correspondants forment un seul groupe implicite et l’étape contrôle directement la concurrence avec maxConcurrency. Lorsque des groupes sont définis (comme production), le niveau maxConcurrency intermédiaire agit comme un plafond global sur tous les groupes.
Dans cet exemple, l’étape staging définit maxConcurrency sur "1", de sorte que les clusters de mise en scène se mettent à niveau un par un. La production phase autorise jusqu'à "4" clusters simultanément, avec les groupes frontend et backend chacun limités à "3".
Les valeurs peuvent être un entier fixe (par exemple, "3") ou un pourcentage (par exemple). "50%" S’il est omis, le système applique les valeurs par défaut. Pour plus d’informations sur la façon dont ces valeurs sont résolues et leurs limites supérieures, consultez Concurrence maximale (préversion).
Créez une stratégie de mise à jour à l’aide de la commande
az fleet updatestrategy createavec l’indicateur--stagesdéfini sur le nom de votre fichier JSON.az fleet updatestrategy create \ --resource-group $GROUP \ --fleet-name $FLEET \ --name $STRATEGY \ --stages example-labels-strategy.json
Créer une stratégie de mise à jour à l’aide de groupes de mises à jour
Vous pouvez sélectionner des clusters dans les stratégies de mise à jour en les affectant à un seul groupe de mises à jour. Définissez une stratégie de mise à jour qui attribue ces groupes de mises à jour à des phases. Dans une phase de mise à jour, les mises à jour sont appliquées à chaque groupe de mises à jour en parallèle. Dans un groupe de mises à jour, les clusters membres sont mis à jour de manière séquentielle.
Remarque
Un membre de flotte ne peut être qu’une partie d’un groupe de mises à jour, tandis qu’un groupe de mises à jour peut avoir plusieurs membres de flotte qui lui sont affectés. 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 ayant des références à un groupe de mise à jour commun sont supprimés, ce groupe de mises à jour spécifique cesse également d’exister.
Affecter des clusters à des groupes de mise à jour
Affecter au groupe lors de l’ajout d’un cluster membre à la flotte
Dans le portail Azure, accédez à votre ressource Azure Kubernetes Fleet Manager.
Dans le menu du service, sous Paramètres, sélectionnez Clusters membres>Ajouter.
Sélectionnez le cluster que vous souhaitez ajouter, puis sélectionnez Suivant : Vérifier + ajouter.
Entrez le nom du groupe de mises à jour auquel vous souhaitez affecter le cluster, puis sélectionnez Ajouter.
Affectez un cluster membre à un groupe de mises à jour lors de l’ajout du cluster membre à la flotte à l’aide de la commande az fleet member create avec le paramètre --update-group défini sur le nom du groupe de mises à jour.
az fleet member create \
--resource-group $GROUP \
--fleet-name $FLEET \
--name member1 \
--member-cluster-id $CLUSTERID \
--update-group group-1a
Affecter un membre de flotte existant à un groupe de mises à jour
Dans le portail Azure, accédez à votre ressource Azure Kubernetes Fleet Manager.
Dans le menu du service, sous Paramètres, sélectionnez Clusters membres.
Sélectionnez les clusters que vous souhaitez affecter à un groupe de mises à jour, puis sélectionnez Affecter un groupe de mises à jour
Entrez le nom du groupe de mises à jour auquel vous souhaitez affecter le cluster, puis sélectionnez Affecter.
Affectez un membre de flotte existant à un groupe de mises à jour à l’aide de la commande az fleet member update avec l’indicateur --update-group défini sur le nom du groupe de mises à jour.
az fleet member update \
--resource-group $GROUP \
--fleet-name $FLEET \
--name member1 \
--update-group group-1
Créer une stratégie de mise à jour
Une stratégie de mise à jour se compose d’une ou plusieurs phases, où une étape peut contenir un ou plusieurs groupes de mises à jour.
Dans le portail Azure, accédez à votre ressource Azure Kubernetes Fleet Manager.
Dans le menu du service, sous Paramètres, sélectionnez Mise à jour multi-cluster>Stratégies, puis Créer.
Entrez un nom pour la stratégie.
La première fois que vous affichez la page, un diagramme d’explication de stratégie de mise à jour s’affiche pour vous aider à visualiser la façon dont les stratégies fonctionnent.
Sélectionnez Créer une étape et entrez :
- Nom de l'étape - nommez l'étape - il doit être unique parmi tous les noms d’étape de la stratégie.
- (Facultatif) Approbations intermédiaires : sélectionnez cette option si vous souhaitez attendre une approbation avant que cette étape commence ou une fois terminée. Pour plus d’informations, consultez Ajouter des approbations pour mettre à jour des groupes et des phases.
- (Facultatif) Suspendre après l’étape : sélectionnez cette option si vous souhaitez définir une pause avant de passer à l’étape suivante.
- (Facultatif) Durée de pause : sélectionnez une durée prédéfinie ou entrez une valeur personnalisée en secondes.
Affectez un ou plusieurs groupes de mises à jour à l’étape, puis sélectionnez Créer.
Remarque
Le nombre maximal de groupes de mises à jour dans chaque phase de mise à jour est de 50.
Pour ce scénario, nous créons des phases et des groupes pour qu’ils correspondent aux détails utilisés pour le processus du portail Azure.
Créez un fichier JSON pour définir les phases et les groupes pour l’exécution de mises à jour. Les étapes s’exécutent de manière séquentielle dans l’ordre dans lequel elles apparaissent dans le fichier JSON. Les groupes s’exécutent en parallèle à chaque étape, de sorte que l’ordre n’est pas important. Le fichier d’exemple suivant (example-stages.json) définit une stratégie avec deux étapes et inclut des paramètres
maxConcurrencyetmaxAllowedFailuresfacultatifs :{ "stages": [ { "name": "stage-1", "maxConcurrency": "7", "maxAllowedFailures": "2", "groups": [ { "name": "group-1", "maxConcurrency": "3", "maxAllowedFailures": "1" }, { "name": "group-2", "maxConcurrency": "50%", "maxAllowedFailures": "25%" } ], "afterStageWaitInSeconds": 300 }, { "name": "stage-2", "maxConcurrency": "100%", "maxAllowedFailures": "0", "groups": [ { "name": "group-3", "maxConcurrency": "2", "maxAllowedFailures": "0" } ] } ] }maxConcurrencyLe
maxConcurrencychamp est facultatif et contrôle le nombre de clusters pouvant être mis à niveau simultanément à l’étape ou au niveau du groupe. Utilisez une plus grande valeur pour mettre à niveau les clusters plus rapidement sur votre flotte, ou une valeur plus petite pour un déploiement plus contrôlé qui limite le rayon d’explosion si des problèmes se produisent.Dans cet exemple,
stage-1définitmaxConcurrencyà"7", ce qui permet à un maximum de"7"clusters de cette étape à être mis à niveau simultanément. Dansstage-1,group-1limite la concurrence aux"3"clusters, ce qui signifie que jusqu'à"3"dans ce groupe peuvent être mis à niveau en même temps.group-2autorise la mise à"50%"niveau simultanée de ses clusters (par exemple, si le groupe contient 4 clusters, jusqu’à 2 peuvent être mis à niveau en même temps).Les valeurs peuvent être un entier fixe (par exemple,
"3") ou un pourcentage (par exemple)."100%"S’il est omis, le système applique les valeurs par défaut. Pour plus d’informations sur la façon dont ces valeurs sont résolues et leurs limites supérieures, consultez Concurrence maximale (préversion).maxAllowedFailuresLe champ
maxAllowedFailuresest facultatif et détermine le nombre d’échecs de mise à niveau des clusters membres tolérés avant que le groupe ou l’étape ne soit marqué comme ayant échoué. Par défaut (lorsqu’il n’est pas défini ou"0"), une seule défaillance arrête l’exécution de la mise à jour entière.Ce paramètre évalue uniquement le nombre d’échecs. Elle n’applique pas un taux de réussite minimal. Un groupe ou une étape peut donc se terminer
Completedmême si certains ou tous les membres ont échoué, tant que le seuil d’échec n’a pas été dépassé lorsque la flotte a pris ses décisions de planification.Dans cet exemple,
stage-1définitmaxAllowedFailuressur"2", en tolérant jusqu’à deux défaillances de membres sur l’ensemble de l’étape. Dansstage-1,group-1tolère l’échec"1"etgroup-2tolère l’échec"25%"de ses membres (par exemple, si le groupe contient 4 clusters, jusqu’à 1 échec est toléré).stage-2définitmaxAllowedFailuressur"0", ce qui signifie que toute défaillance arrête immédiatement l’exécution et est souvent utile pour les phases de production.Pour la plupart des déploiements, préférez les valeurs basées sur des pourcentages, car elles s’étendent mieux sur différentes tailles de groupe. Évitez de définir la valeur sur le nombre total de membres, sauf si vous souhaitez intentionnellement obtenir, pour ce segment, un comportement équivalant en pratique à « ne jamais échouer ».
Les valeurs peuvent être un entier fixe (par exemple,
"3") ou un pourcentage (par exemple)."25%"Pour plus d’informations sur la façon dont ces valeurs sont résolues, consultez Nombre maximal d’échecs autorisés (préversion).Créez une stratégie de mise à jour à l’aide de la commande
az fleet updatestrategy createavec l’indicateur--stagesdéfini sur le nom de votre fichier JSON.az fleet updatestrategy create \ --resource-group $GROUP \ --fleet-name $FLEET \ --name $STRATEGY \ --stages example-stages.json
Étapes suivantes
Vous pouvez utiliser une stratégie de mise à jour dans le cadre d’une exécution manuelle de mise à jour ou d’un profil de mise à niveau automatique. Consultez l'article :
- Procédure : mettre à niveau plusieurs clusters en utilisant les exécutions de mises à jour d’Azure Kubernetes Fleet Manager.
- Procédure : ajouter des approbations aux stratégies de mise à jour d’Azure Kubernetes Fleet Manager.
- Procédure : mettre à niveau automatiquement plusieurs clusters en utilisant Azure Kubernetes Fleet Manager.
- Questions fréquentes (FAQ) sur les mises à jour de plusieurs clusters.