Cette rubrique explique comment créer, déployer, mettre à jour et restaurer des applications à l'aide de GitOps sur Container Service for Kubernetes (ACK).
À l'issue de cette rubrique, vous saurez :
Créer et déployer une application depuis un référentiel Git
Consulter l'état de synchronisation de l'application et sa topologie des ressources
Mettre à jour l'application en validant les modifications dans Git
Restaurer une version précédente
Prérequis
Avant de commencer, assurez-vous d'avoir :
Associé deux clusters à l'instance Fleet — un cluster fournisseur de services et un cluster consommateur de services
Créer et déployer une application
Les étapes suivantes utilisent une application exemple nommée echo-server-demo, déployée sur un cluster ACK dont l'adresse du serveur API est https://47.97.XX.XX:6443.
Si vous ne pouvez pas accéder à GitHub en raison de problèmes réseau, remplacez https://github.com/AliyunContainerService/gitops-demo.git par https://code.aliyun.com/shuwei.hsw/gitops-demo.git.
Via la console Argo CD
Connectez-vous à l'interface utilisateur Argo CD. Pour plus d'informations, consultez la section Utiliser l'interface utilisateur Argo CD pour se connecter à Argo CD.
Dans le volet de navigation de gauche, cliquez sur Applications, puis sur + NEW APP.
-
Dans le panneau qui s'affiche, configurez les paramètres suivants et cliquez sur CREATE.
Section Paramètre Valeur GENERAL Application Name echo-server-demoProject Name defaultSYNC POLICY Sélectionnez Automatic dans la liste déroulante. Avec l'option Automatic, Argo CD analyse le référentiel Git toutes les 3 minutes et synchronise les modifications avec le cluster. Avec l'option Manual, déclenchez manuellement les synchronisations en cliquant sur SYNC. SYNC OPTIONS Cochez l'option AUTO-CREATE NAMESPACE SOURCE Repository URL Sélectionnez https://github.com/AliyunContainerService/gitops-demo.gitdans la liste déroulanteRevision HEADPath manifests/helm/echo-serverDESTINATION Cluster URL/Cluster Name Sélectionnez votre cluster cible dans la liste déroulante Namespace echo-server-demoHELM VALUES FILES values.yaml -
Une fois l'application créée, consultez son statut sur la page Applications. Si la stratégie de synchronisation (SYNC POLICY) est définie sur Manual, cliquez sur SYNC pour déployer l'application. Le déploiement est réussi lorsque le statut indique à la fois Healthy et Synced.

Via l'interface CLI Argo CD
-
Créez l'application :
argocd app create echo-server-demo \ --repo https://github.com/AliyunContainerService/gitops-demo.git \ --path manifests/directory/production \ # subdirectory containing the application manifests --dest-namespace echo-server-demo \ # namespace where the application is deployed --dest-server https://47.97.XX.XX:6443 \ # API server endpoint of the ACK cluster --sync-policy none # none (default): manual sync; auto: automatic sync every 3 minutesRésultat attendu :
application 'echo-server-demo' created -
Déployez l'application sur le cluster :
argocd app sync echo-server-demoRésultat attendu :
TIMESTAMP GROUP KIND NAMESPACE NAME STATUS HEALTH HOOK MESSAGE 2022-10-17T16:43:20+08:00 apps Deployment echo-server-demo echo-server OutOfSync Missing 2022-10-17T16:43:20+08:00 Service echo-server-demo echo-server OutOfSync Missing 2022-10-17T16:43:20+08:00 Service echo-server-demo echo-server Synced Progressing 2022-10-17T16:43:20+08:00 Service echo-server-demo echo-server Synced Progressing service/echo-server-demo created 2022-10-17T16:43:20+08:00 apps Deployment echo-server-demo echo-server OutOfSync Missing deployment.apps/echo-server-demo created 2022-10-17T16:43:20+08:00 apps Deployment echo-server-demo echo-server Synced Progressing deployment.apps/echo-server-demo created Name: echo-server-demo Project: default Server: https://47.97.XX.XX:6443 Namespace: echo-server-demo URL: https://127.0.0.1:65384/applications/echo-server-demo Repo: https://github.com/AliyunContainerService/gitops-demo.git Target: Path: manifests/directory/production SyncWindow: Sync Allowed Sync Policy: <none> Sync Status: Synced to (02af62b) Health Status: Progressing Operation: Sync Sync Revision: 02af62bf21e76f53ebfcc282c45865d2308c**** Phase: Succeeded Start: 2022-10-17 16:43:19 +0800 CST Finished: 2022-10-17 16:43:20 +0800 CST Duration: 1s Message: successfully synced (all tasks run) GROUP KIND NAMESPACE NAME STATUS HEALTH HOOK MESSAGE Service echo-server-demo echo-server-demo Synced Progressing service/echo-server-demo created apps Deployment echo-server-demo echo-server-demo Synced Progressing deployment.apps/echo-server-demo createdLa synchronisation est terminée lorsque le champ
PhaseafficheSucceededet que le champMessageindiquesuccessfully synced (all tasks run). Les ressources apparaissent initialement avec le statutProgressingpendant que Kubernetes démarre les pods ; elles passent ensuite au statutHealthyune fois que tous les pods sont en cours d'exécution.
Consulter les applications
Via la console Argo CD
Dans le volet de navigation de gauche, cliquez sur Applications pour afficher toutes les applications.
-
Cliquez sur le nom d'une application pour ouvrir sa page de détails, qui présente la topologie des ressources ainsi que le statut de chaque ressource Kubernetes.

Via l'interface CLI Argo CD
Listez toutes les applications déployées :
argocd app list
Résultat attendu :
NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET
echo-server https://47.97.XX.XX:6443 echo-server-demo default Synced Healthy <none> <none> https://github.com/AliyunContainerService/gitops-demo.git manifests/directory/production
Un statut STATUS défini sur Synced et un état de santé HEALTH défini sur Healthy confirment que l'application est en cours d'exécution et correspond à l'état du référentiel Git.
Mettre à jour une application
Avec GitOps, Git constitue la source de vérité unique. Pour mettre à jour une application déployée, validez les modifications dans le référentiel Git ; ne modifiez pas directement les ressources du cluster. Si la stratégie de synchronisation est définie sur auto, Argo CD détecte automatiquement la modification dans un délai de 3 minutes. Avec la valeur none (manuelle), exécutez la commande argocd app sync après avoir validé les changements.
Validez vos modifications dans le référentiel Git.
-
Synchronisez les modifications avec le cluster :
argocd app sync echo-server-demo -
Vérifiez la mise à jour en accédant à l'application :
curl XX.XX.XX.XX:8080/version # Replace XX.XX.XX.XX with the application's IP addressRésultat attendu :
"Hello Echo Server v2.0"
Restaurer une application
Via la console Argo CD
Dans le volet de navigation de gauche, cliquez sur Applications. Localisez
echo-server-demoet cliquez sur son nom.-
Sur la page de détails de l'application, cliquez sur HISTORY AND ROLLBACK. Sur la page des versions historiques, sélectionnez la version cible et cliquez sur Rollback dans le coin supérieur droit.

Revenez à la page de détails de l'application pour confirmer la version après la fin de la restauration.
Via l'interface CLI Argo CD
-
Consultez les versions historiques disponibles :
argocd app history echo-server-demoRésultat attendu :
ID DATE REVISION 0 2022-10-17 16:43:20 +0800 CST (02af62b) 1 2022-10-17 16:52:49 +0800 CST (56ae547)L'ID le plus élevé correspond à la version actuelle. Dans cet exemple, l'ID
1(révision56ae547) est la version active. Pour effectuer une restauration, ciblez un ID inférieur. -
Restaurez la révision
02af62b(ID0) :argocd app rollback echo-server-demo 0 -
Vérifiez la restauration en accédant à l'application :
curl XX.XX.XX.XX:8080/version # Replace XX.XX.XX.XX with the application's IP addressRésultat attendu :
"Hello Echo Server v1.0"