Le composant ack-onepilot met automatiquement à jour les agents Application Real-Time Monitoring Service (ARMS) dans les clusters Kubernetes. Pour valider une nouvelle version d'agent avant un déploiement généralisé ou conserver une version spécifique pour des raisons de stabilité, épinglez l'agent sur une version fixe au lieu d'accepter les mises à jour automatiques.
Choisissez une méthode en fonction de la version d'ack-onepilot installée dans votre cluster :
|
Tâche |
Méthode |
Version d'ack-onepilot |
|
Épingler une version d'agent spécifique (en libre-service) |
V3.0.17 ou ultérieure |
|
|
Déployer une version sur un sous-ensemble d'instances en premier |
V3.3.0 ou ultérieure |
|
|
Épingler une version lorsque le libre-service n'est pas disponible |
Antérieure à V3.0.17 |
Spécification d'une version d'agent
Prérequis : ack-onepilot V3.0.17 ou ultérieure. Pour vérifier la version, accédez à la console Container Service Management, cliquez sur Add-ons, recherchez ack-onepilot et vérifiez sa version. Si une mise à niveau est disponible, cliquez sur Upgrade.
Cette approche est recommandée pour contrôler les versions d'agents. Trois méthodes sont disponibles. Si vous utilisez à la fois la méthode 1 et la méthode 2, ou la méthode 1 et la méthode 3, la version spécifiée par la méthode 2 ou 3 est prioritaire sur celle de la méthode 1.
Étape 1 : Identification de la version cible de l'agent
Connectez-vous à la console ARMS.
Dans le volet de navigation de gauche, sélectionnez .
Notez le numéro de version à utiliser. Sélectionnez la dernière version stable, sauf si votre environnement exige une version spécifique.
Sous l'onglet Agent Online Status, notez la version actuelle de l'agent pour chaque application. Cette version servira de cible de restauration en cas de problème.
Étape 2 : Application de la version
Choisissez l'une des méthodes suivantes.
Méthode 1 : Libellé YAML
Ajoutez le libellé aliyun.com/agent-version au fichier YAML de l'application :
metadata:
labels:
aliyun.com/agent-version: "<agent-version>"
Remplacez <agent-version> par le numéro de version obtenu à l'étape 1.
Après avoir enregistré le fichier et cliqué sur Update, l'application redémarre automatiquement pour appliquer la version spécifiée.
Ce libellé s'applique uniquement à l'application actuelle. Répétez cette étape pour chaque application nécessitant un épinglage de version.
Méthode 2 : Console EDAS
Lors du déploiement d'une application dans un cluster Kubernetes via la console Enterprise Distributed Application Service (EDAS), spécifiez la version de l'agent dans la section Monitoring and Governance Configurations de l'onglet Advanced Settings.
Pour ajuster les versions d'agents disponibles dans EDAS, contactez le support technique d'EDAS.
Méthode 3 : API EDAS
Lors de la création ou du déploiement d'une application via l'API EDAS, définissez le paramètre CustomAgentVersion dans l'opération InsertK8sApplication ou DeployK8sApplication.
Étape 3 : Vérification et déploiement
Appliquez d'abord la version à une application de test.
Validez le bon fonctionnement de l'application avec la nouvelle version de l'agent.
Une fois la validation réussie, répétez l'étape 2 pour les applications restantes.
Si la nouvelle version de l'agent entraîne des problèmes, modifiez le libellé ou le paramètre pour revenir à la version précédente notée à l'étape 1 afin d'effectuer une restauration.
Activation de la mise à jour progressive
Prérequis : ack-onepilot V3.3.0 ou ultérieure. La charge de travail de l'application doit comporter trois réplicas ou plus.
La mise à jour progressive permet de valider une nouvelle version d'agent sur un petit sous-ensemble d'instances avant qu'elle n'atteigne l'ensemble de la charge de travail.
Ajoutez les deux libellés suivants au fichier YAML de l'application :
metadata:
labels:
aliyun.com/agent-version: "<agent-version>"
aliyun.com/enable-progressive-update: "true"
Lorsque vous redéployez une charge de travail Deployment ou StatefulSet dans un cluster ACK avec la mise à jour progressive activée, seules une à deux instances reçoivent la version d'agent spécifiée. Les autres instances conservent leur version actuelle.
Limitations
La mise à jour progressive nécessite au moins trois réplicas. Si la charge de travail compte moins de trois réplicas, aucune instance ne sera mise à jour vers la version spécifiée, même si le libellé est défini. Dans ce cas, n'activez pas la mise à jour progressive pour cette charge de travail.
La mise à jour progressive s'applique uniquement aux charges de travail de type Deployment et StatefulSet.
Contact du support technique pour épingler une version
Utilisez cette méthode si ack-onepilot est antérieure à V3.0.17 ou si votre environnement nécessite des modifications manuelles du fichier YAML. Cette approche utilise le verrouillage de version pour migrer les agents depuis des versions obsolètes ou non prises en charge vers la dernière version.
Sélectionnez une application de test. Contactez le support technique ARMS pour verrouiller l'agent sur la version cible.
Redémarrez l'application de test et validez la nouvelle version de l'agent.
Une fois la validation réussie, contactez le support technique ARMS pour mettre à jour la version verrouillée sur les clusters restants par lots.
Redémarrez les applications de chaque lot pour appliquer la mise à jour.
Bonnes pratiques
Validation avant déploiement généralisé : Épinglez d'abord la nouvelle version sur une seule application de test. Confirmez son bon fonctionnement avant de mettre à jour les autres applications.
Utilisation de la mise à jour progressive pour les charges de travail de production : Pour les charges de travail comptant trois réplicas ou plus, activez la mise à jour progressive afin de limiter l'impact lors des changements de version.
Enregistrement des versions actuelles avant modification : Avant d'épingler une nouvelle version, notez la version actuelle de l'agent sous l'onglet Agent Online Status pour pouvoir effectuer une restauration rapide.
Maintien d'ack-onepilot à jour : Mettez à niveau ack-onepilot vers la version V3.0.17 ou ultérieure pour accéder à l'épinglage de version en libre-service, ou vers la version V3.3.0 ou ultérieure pour la mise à jour progressive, sans dépendre du support technique.