Este tópico demonstra como criar, implantar, atualizar e reverter aplicações com GitOps no Container Service for Kubernetes (ACK).
Após concluir este tópico, você poderá:
Criar e implantar uma aplicação a partir de um repositório Git
Visualize o status de sincronização e a topologia de recursos da aplicação
Atualize a aplicação por meio de commits no Git
Reverter para uma versão anterior
Pré-requisitos
Antes de começar, verifique se você:
Associou dois clusters à instância do Fleet — um cluster provedor de serviços e um cluster consumidor de serviços
Crie e implante uma aplicação
Os passos a seguir usam a aplicação de exemplo echo-server-demo, implantada em um cluster ACK com endereço do servidor de API https://47.97.XX.XX:6443.
Se não conseguir acessar o GitHub devido a problemas de rede, substitua https://github.com/AliyunContainerService/gitops-demo.git por https://code.aliyun.com/shuwei.hsw/gitops-demo.git.
Pelo console do Argo CD
Faça login na interface do Argo CD. Para mais informações, consulte Usar a interface do Argo CD para fazer login no Argo CD.
No painel de navegação à esquerda, clique em Applications e em + NEW APP.
-
No painel exibido, configure os parâmetros abaixo e clique em CREATE.
Seção
Parâmetro
Valor
GENERAL
Application Name
echo-server-demoProject Name
defaultSYNC POLICY
Selecione Automatic na lista suspensa. Com Automatic, o Argo CD verifica o repositório Git a cada 3 minutos e sincroniza as alterações no cluster. Com Manual, acione a sincronização manualmente clicando em SYNC.
SYNC OPTIONS
Marque AUTO-CREATE NAMESPACE
SOURCE
Repository URL
Escolha
https://github.com/AliyunContainerService/gitops-demo.gitna lista suspensaRevision
HEADPath
manifests/helm/echo-serverDESTINATION
Cluster URL/Cluster Name
Selecione o cluster de destino na lista suspensa
Namespace
echo-server-demoHELM
VALUES FILES
values.yaml -
Após criar a aplicação, verifique seu status na página Applications. Se a SYNC POLICY estiver definida como Manual, clique em SYNC para implantá-la. A implantação é bem-sucedida quando o status exibe simultaneamente Healthy e Synced.

Pela CLI do Argo CD
-
Crie a aplicação:
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 minutesSaída esperada:
application 'echo-server-demo' created -
Implante a aplicação no cluster:
argocd app sync echo-server-demoSaída esperada:
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 createdA sincronização termina quando
PhaseexibeSucceededeMessagemostrasuccessfully synced (all tasks run). Os recursos aparecem inicialmente comoProgressingenquanto o Kubernetes inicia os pods e mudam paraHealthyassim que todos os pods entram em execução.
Visualize aplicações
Pelo console do Argo CD
No painel de navegação à esquerda, clique em Applications para visualizar todas as aplicações.
-
Clique em no nome da aplicação para abrir a página de detalhes, que apresenta a topologia de recursos e o status de cada recurso do Kubernetes.

Pela CLI do Argo CD
Liste todas as aplicações implantadas:
argocd app list
Saída esperada:
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
O STATUS igual a Synced combinado com HEALTH definido como Healthy confirma que a aplicação está em execução e alinhada ao estado do repositório Git.
Atualize uma aplicação
No modelo GitOps, o Git atua como fonte única de verdade. Para atualizar uma aplicação implantada, faça commit das alterações no repositório Git e evite modificar recursos diretamente no cluster. Se a política de sincronização estiver configurada como auto, o Argo CD detectará a mudança automaticamente em até 3 minutos. Caso esteja definida como none (manual), execute argocd app sync após o commit.
Faça commit das alterações no repositório Git.
-
Sincronize as mudanças com o cluster:
argocd app sync echo-server-demo -
Verifique a atualização acessando a aplicação:
curl XX.XX.XX.XX:8080/version # Replace XX.XX.XX.XX with the application's IP addressSaída esperada:
"Hello Echo Server v2.0"
Reverter uma aplicação
Pelo console do Argo CD
No painel de navegação à esquerda, clique em Applications. Localize
echo-server-demoe clique em no nome da aplicação.-
Na página de detalhes da aplicação, clique em HISTORY AND ROLLBACK. Na página de histórico de versões, selecione a versão desejada e clique em Rollback no canto superior direito.

Retorne à página de detalhes da aplicação para confirme a versão após a conclusão da reversão.
Pela CLI do Argo CD
-
Consulte as versões históricas disponíveis:
argocd app history echo-server-demoSaída esperada:
ID DATE REVISION 0 2022-10-17 16:43:20 +0800 CST (02af62b) 1 2022-10-17 16:52:49 +0800 CST (56ae547)O maior ID corresponde à versão atual. Neste exemplo, o ID
1(revisão56ae547) representa a versão vigente. Para reverter, escolha um ID inferior. -
Reverta para a revisão
02af62b(ID0):argocd app rollback echo-server-demo 0 -
Valide a reversão acessando a aplicação:
curl XX.XX.XX.XX:8080/version # Replace XX.XX.XX.XX with the application's IP addressSaída esperada:
"Hello Echo Server v1.0"