Ative o GitOps, conecte um repositório Git e implante seu primeiro aplicativo em um cluster de destino.
Após concluir este guia, você terá:
Ativado o acesso público ao console do Argo CD
Conectado um repositório Git ao Argo CD
Implantado um aplicativo em um cluster de destino
Pré-requisitos
Antes de começar, verifique se você tem:
Gerenciamento de frota ativado.
Vários clusters associados à instância de frota.
A permissão AliyunAdcpFullAccess concedida ao seu usuário RAM.
(Apenas CLI) O kubeconfig da instância de frota baixado do console do ACK One e o kubectl configurado para conexão com a frota.
(Apenas CLI) A versão mais recente da Alibaba Cloud CLI instalada versão mais recente da Cloud Assistant CLI instalada e configurada.
Faturamento
A ativação do GitOps cria os seguintes recursos faturáveis:
Uma instância SLB para expor os endpoints de API e UI do Argo CD
Uma instância ECI no modelo pagamento conforme o uso com 2 vCPUs e 4 GB de memória para o serviço Argo CD
Consulte Faturamento de recursos de nuvem para frotas multicluste.
Regiões suportadas
O GitOps é compatível com todas as regiões que oferecem suporte a frotas multicluste e clusters de fluxo de trabalho.
Etapa 1: Ativar o acesso público ao console do GitOps
O GitOps vem ativado por padrão nas instâncias de frota do ACK One, mas o console do Argo CD só é acessível dentro de uma Virtual Private Cloud (VPC). Ative o acesso público para gerenciar aplicativos pela Internet.
A ativação do acesso público introduz riscos de segurança. Sempre configure uma Lista de Controle de Acesso (ACL) para restringir o acesso a endereços IP ou blocos CIDR confiáveis.
Pelo console
Faça logon no console do ACK One. No painel de navegação à esquerda, escolha Fleet > Multi-cluster Applications.
Na página Multi-cluster GitOps, clique em
ao lado do nome da frota e selecione sua frota.Se o GitOps não estiver ativado, clique em Enable GitOps e depois em OK. Caso já esteja ativado, o botão GitOps Console estará visível.
Clique em Enable ao lado de Public Access. Na caixa de diálogo Enable Public Access, insira os endereços IP ou blocos CIDR para a lista de permissões e clique em OK.
Após a atualização da frota, clique em GitOps Console para abrir o console do Argo CD.
Pela Cloud Assistant CLI
Ative o GitOps e o acesso público simultaneamente. Substitua <your_clusterid> pelo ID da sua instância de frota e o valor de AccessControlList pelos seus blocos CIDR confiáveis.
Consulte Ativar acesso público ao Argo CD para obter detalhes sobre blocos CIDR.
aliyun adcp UpdateHubClusterFeature --ClusterId <your_clusterid> --PublicAccessEnabled true --AccessControlList "[\"10.100.XX.XX/24\"]" --ArgoCDEnabled true
Se estiver usando o AccessKey de um usuário RAM, conceda primeiro a permissão AliyunAdcpFullAccess ao usuário RAM. Consulte Conceder permissões a um usuário RAM .
Etapa 2: Implantar um aplicativo em um cluster de destino
Conecte um repositório Git e implante um aplicativo usando o exemplo gitops-demo. Use a UI do Argo CD ou a CLI.
Implantação pela UI do Argo CD
Fazer logon no Argo CD
Na página Multi-cluster GitOps, clique em GitOps Console. Na página de login, clique em LOG IN VIA ALIYUN para entrar com sua conta Alibaba Cloud via SSO.
Conectar um repositório
No painel de navegação à esquerda, clique em Settings e escolha Repositories > + Connect Repo.
-
Configure os parâmetros abaixo e clique em CONNECT. Em caso de sucesso, CONNECTION STATUS exibirá Successful.
Área
Parâmetro
Valor
Choose your connection method
—
VIA HTTP/HTTPS
CONNECT REPO USING HTTP/HTTPS
Type
git
Project
default
Repository URL
https://github.com/AliyunContainerService/gitops-demo.gitSkip server verification
Marque esta caixa de seleção


Criar um aplicativo
No painel de navegação à esquerda, escolha Applications e clique em + NEW APP.
-
Defina os parâmetros a seguir e clique em CREATE.
Área
Parâmetro
Valor
GENERAL
Application Name
echo-server-demoProject Name
default
SYNC POLICY
—
Selecione Automatic. O Argo CD verifica o repositório a cada 3 minutos e implanta alterações automaticamente. Com a opção Manual, clique em SYNC para acionar a implantação.
SYNC OPTIONS
—
Selecione AUTO-CREATE NAMESPACE
SOURCE
Repository URL
Selecione
https://github.com/AliyunContainerService/gitops-demo.gitRevision
HEAD
Path
manifests/helm/echo-serverDESTINATION
Cluster URL
Selecione seu cluster de destino
Namespace
echo-server-demoHELM
VALUES FILES
values.yaml -
Na página Applications, confirme se o aplicativo
echo-server-demoapresenta Status: Healthy e Synced. Se você definiu a SYNC POLICY como Manual, clique em SYNC para iniciar a implantação.
-
Clique em nome do aplicativo para visualizar a topologia e o status dos recursos Kubernetes.

Implantação pela CLI do Argo CD
Fazer logon no Argo CD
Baixe e instale a CLI do Argo CD v2.8.7.
-
Obtenha a senha inicial de administrador da instância de frota:
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d -
Faça logon usando encaminhamento de porta. O nome de usuário padrão é
admin.export ARGOCD_OPTS='--port-forward-namespace argocd --port-forward' argocd login Username: admin Password:Saída esperada:
'admin:login' logged in successfully Context 'port-forward' updated -
Atualize a senha padrão do usuário
admin:argocd account update-password *** Enter password of currently logged in user (admin): *** Enter new password for user admin: *** Confirm new password for user admin:Saída esperada:
Password updated Context 'port-forward' updated
Conectar um repositório
-
Adicione o repositório Git:
argocd repo add https://github.com/AliyunContainerService/gitops-demo.git --name echo-serverSaída esperada:
Repository 'https://github.com/AliyunContainerService/gitops-demo.git' added -
Verifique se o repositório foi adicionado:
argocd repo listSaída esperada:
TYPE NAME REPO INSECURE OCI LFS CREDS STATUS MESSAGE PROJECT git https://github.com/AliyunContainerService/gitops-demo.git false false false false Successful default -
Liste os clusters disponíveis. A saída mostra todos os clusters associados à instância de frota.
argocd cluster listSaída esperada:
SERVER NAME VERSION STATUS MESSAGE PROJECT https://47.97.XX.XX:6443 c83f3cbc90a****-temp02 1.22+ Successful https://kubernetes.default.svc in-cluster Unknown Cluster has no applications and is not being monitored.Anote a URL do servidor do cluster de destino para a próxima etapa.
Criar e sincronizar um aplicativo
-
Crie o aplicativo. Substitua
https://47.97.XX.XX:6443pela URL do servidor do cluster de destino.argocd app create echo-server --repo https://github.com/AliyunContainerService/gitops-demo.git --path manifests/helm --dest-namespace echo-server-cli --dest-server https://47.97.XX.XX:6443Saída esperada:
application 'echo-server' created -
Sincronize o aplicativo com o cluster de destino:
argocd app sync echo-serverSaída esperada:
TIMESTAMP GROUP KIND NAMESPACE NAME STATUS HEALTH HOOK MESSAGE 2022-09-22T14:32:45+08:00 Service echo-server-cli echo-server OutOfSync Missing 2022-09-22T14:32:45+08:00 apps Deployment echo-server-cli echo-server OutOfSync Missing 2022-09-22T14:32:45+08:00 Service echo-server-cli echo-server Synced Progressing 2022-09-22T14:32:45+08:00 Service echo-server-cli echo-server Synced Progressing service/echo-server created 2022-09-22T14:32:45+08:00 apps Deployment echo-server-cli echo-server OutOfSync Missing deployment.apps/echo-server created 2022-09-22T14:32:45+08:00 apps Deployment echo-server-cli echo-server Synced Progressing deployment.apps/echo-server created Name: echo-server Project: default Server: https://47.97.XX.XX:6443 Namespace: echo-server-cli URL: https://127.0.0.1:52742/applications/echo-server Repo: https://github.com/AliyunContainerService/gitops-demo.git Target: Path: manifests/helm SyncWindow: Sync Allowed Sync Policy: <none> Sync Status: Synced to (e5c2618) Health Status: Progressing Operation: Sync Sync Revision: e5c261880a4072cdbfa5173add2be426f7f3**** Phase: Succeeded Start: 2022-09-22 14:32:44 +0800 CST Finished: 2022-09-22 14:32:45 +0800 CST Duration: 1s Message: successfully synced (all tasks run) GROUP KIND NAMESPACE NAME STATUS HEALTH HOOK MESSAGE Service echo-server-cli echo-server Synced Progressing service/echo-server created apps Deployment echo-server-cli echo-server Synced Progressing deployment.apps/echo-server created -
Confirme se o aplicativo está em execução:
argocd app listSaída esperada:
NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET echo-server https://47.97.XX.XX:6443 echo-server-cli default Synced Healthy <none> <none> https://github.com/AliyunContainerService/gitops-demo.git manifests/helmO aplicativo estará implantado quando STATUS for Synced e HEALTH for Healthy.
Mais operações
Use estas operações para manter sua configuração do GitOps.
Configurar o ConfigMap do Argo CD
Na página Multi-cluster GitOps, localize Argo CD ConfigMap na seção recolhível GitOps.
Clique em Configure ao lado de Argo CD ConfigMap.
Na página Argo CD ConfigMap Settings, selecione um item de configuração na lista suspensa Select Configuration Item e edite-o no editor de código Modify Configurations. Consulte Itens de configuração comuns para políticas de reinicialização.
Reiniciar componentes do Argo CD
Na página Multi-cluster GitOps, localize Argo CD Component na seção recolhível GitOps.
Clique em Restart ao lado de Argo CD Components.
Selecione o componente na lista suspensa Select Application to Restart (por exemplo, argocd-server) e clique em OK.
Desativar o GitOps
Exclua todos os aplicativos antes de desativar o GitOps. Desative o GitOps antes de excluir uma instância de frota do ACK One.
Pelo console:
Faça logon no console do ACK One. No painel de navegação à esquerda, escolha Fleet > Multi-cluster Applications.
Na página Multi-cluster GitOps, clique em
e selecione sua frota.Clique em Disable GitOps e depois em OK.
Pela Cloud Assistant CLI:
aliyun adcp UpdateHubClusterFeature --ClusterId <your_clusterid> --ArgoCDEnabled false
Próximas etapas
Ativar acesso público ao Argo CD — configure definições adicionais de controle de acesso
Itens de configuração comuns — personalize o comportamento do Argo CD com configurações de ConfigMap
Faturamento de recursos de nuvem para frotas multicluste — revise os custos de recursos do GitOps