Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Integrar Argo CD com ASM para implementar GitOps

Última atualização: Jun 28, 2026

Gerenciar recursos de aplicação (Deployments, Services) e recursos de gerenciamento de tráfego do Istio (VirtualServices, Gateways, DestinationRules) em vários clusters dificulta o rastreamento de alterações e a manutenção da consistência. A integração do Argo CD com o Service Mesh (ASM) resolve esse problema ao unificar todos os recursos em um único fluxo de trabalho GitOps — com controle de versão, auditoria e sincronização automática do git para o cluster.

Como funciona

O GitOps trata o git como a única source da verdade para definições declarativas de infraestrutura e aplicações. Com o Argo CD integrado ao ASM:

  1. Defina os recursos da aplicação (Deployments, Services) e os recursos de gerenciamento de tráfego (VirtualServices, Gateways, DestinationRules) como manifestos YAML e faça commit deles em um repositório git.

  2. O Argo CD detecta alterações no repositório e as compara com o estado atual do cluster.

  3. O Argo CD sincroniza as alterações no cluster, automaticamente ou mediante aprovação manual.

O ASM executa um plano de controle gerenciado compatível com Istio, separado do plano de dados onde reside seu cluster Container Service for Kubernetes (ACK). Diferentemente do Istio autogerenciado, o plano de controle e o cluster ACK não estão no mesmo cluster Kubernetes. A Etapa 2 deste guia preenche essa lacuna para que o Argo CD possa gerencie recursos do Istio por meio da api Kubernetes do plano de dados.

ArgoCD

Principais tipos de recursos do Istio

Este guia utiliza os seguintes tipos de recursos do Istio. Compreendê-los facilita o trabalho com o fluxo GitOps:

Recurso

Finalidade

VirtualService

Define regras de roteamento de tráfego (por exemplo, roteamento por cabeçalho, peso ou correspondência de URI)

DestinationRule

Define subconjuntos de um serviço com base em rótulos de pod (por exemplo, v1, v2) e aplica políticas de tráfego, como balanceamento de carga

Gateway

Configure um balanceador de carga para tráfego HTTP/HTTPS de entrada no mesh

Um VirtualService referencia subconjuntos definidos em uma DestinationRule. Por exemplo, se um VirtualService rotear tráfego para subset: v2, a DestinationRule mapeia v2 para pods com o rótulo version: v2.

Pré-requisitos

Antes de começar, verifique se você tem:

Dica: As melhores práticas do Argo CD recomendam usar um repositório git separado para manifestos do Kubernetes, em vez de armazená-los junto com o código-fonte da aplicação. Isso proporciona logs de auditoria mais limpos, separação de acessos e evita loops no pipeline de CI. Para detalhes, consulte Melhores Práticas do Argo CD .

Etapa 1: Instale o Argo CD

Instale o Argo CD no cluster ACK usando um dos seguintes métodos:

  • Instalação manual: Siga o guia Primeiros Passos com Argo CD para instale o Argo CD com kubectl.

  • ACK Application Center (integrado): O ACK oferece um recurso nativo do Argo CD por meio do Application Center. Esta opção dispensa instalação manual e suporta implantações baseadas em repositórios git e Helm charts com reversão de versão. Para mais informações, consulte Visão geral do Application Center.

Etapa 2: Ative acesso à api Kubernetes do plano de dados para recursos do Istio

Em uma instalação de Istio autogerenciada, o plano de controle e as cargas de trabalho compartilham o mesmo cluster Kubernetes. Isso permite que ferramentas como o Argo CD acessem todas as Definições de Recursos Personalizados (CRDs) do Istio diretamente. O ASM opera de forma diferente: o plano de controle gerenciado é executado em um cluster separado do cluster de plano de dados ACK. Por padrão, os CRDs do Istio (VirtualService, Gateway, DestinationRule) não estão disponíveis pela api Kubernetes do plano de dados. Ative o acesso KubeAPI do plano de dados registra esses CRDs no cluster ACK, permitindo que o Argo CD gerencie recursos do Istio da mesma forma que gerencia recursos padrão do Kubernetes.

  1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, localize a instância do ASM que deseja configure. Clique em no nome da instância do ASM ou em Manage na coluna Actions.

  3. Na página Base Information, clique em Enable ao lado de Enable Data-plane KubeAPI access.

    Enable Data-plane KubeAPI access

  4. Na mensagem de confirmação, clique em OK.

Etapa 3: Implantar um gateway de entrada

Crie um gateway de entrada para lidar com o tráfego de entrada das aplicações gerenciadas pelo Argo CD.

  1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique em no nome da instância do ASM. No painel de navegação à esquerda, escolha ASM Gateways > Ingress Gateway.

  3. Na página Ingress Gateway, clique em Create e configure os seguintes parâmetros. Para detalhes sobre todos os parâmetros disponíveis, consulte Crie um gateway de entrada.

    Parâmetro

    Valor para este exemplo

    Name

    ingressgateway

    Gateway types

    North-South IngressGateway

    Port Mapping

    Clique em Add Port e adicione as seguintes entradas: - Protocol: HTTP, Service Port: 80- Protocol: HTTPS, Service Port: 443

  4. Clique em Create para implantar o gateway de entrada.

Etapa 4: Implantar a aplicação de exemplo Bookinfo com o Argo CD

Use o Argo CD para implantar a aplicação de exemplo Bookinfo do Istio a partir de um repositório git. Esta etapa cria os Deployments, Services e recursos de gerenciamento de tráfego do Istio no cluster.

Crie a aplicação no Argo CD

  1. Na interface do Argo CD, clique em NEW APP e configure as seguintes seções:

    GENERAL

    • Defina Application Name como bookinfo.

    • Defina Project como default.

    • Selecione PRUNE RESOURCES para permitir que o Argo CD exclua recursos do cluster quando eles forem removidos do git. Isso mantém o estado do cluster sincronizado com o repositório.

    GENERAL section

    SOURCE

    • Defina Repository URL como https://github.com/AliyunContainerService/asm-labs.git.

    • Defina Revision como argocd-asm.

    • Defina Path como argo-cd/bookinfo.

    SOURCE section

    DESTINATION

    • Defina Cluster URL como https://kubernetes.default.svc.

    • Defina Namespace como default.

    DESTINATION section

  2. Clique em CREATE.

Para uma referência completa das opções de política de sincronização (sincronização automatizada, autocorreção, ondas de sincronização), consulte Opções de Sincronização do Argo CD .

Verifique a implantação

Após crie a aplicação, verifique se os recursos foram implantados corretamente em três locais:

Verifique status no Argo CD

O cartão da aplicação bookinfo na interface do Argo CD exibe o status de sincronização e a integridade de todos os recursos gerenciados.

Application status in Argo CD

Clique em bookinfo para visualize o status de cada recurso.

Resource status in Argo CD

Verifique VirtualServices no console do ASM

  1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique em no nome da instância do ASM. No painel de navegação à esquerda, escolha Traffic Management Center > VirtualService.

  3. Na página VirtualService, confirme a existência do VirtualService do Bookinfo.

Verifique Deployments no console do ACK

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique em no nome do cluster. No painel de navegação à esquerda, escolha Workloads > Deployments.

  3. Confirme que os Deployments do Bookinfo estão em execução.

    Bookinfo Deployments in ACK console

Acessar a aplicação pelo gateway de entrada

  1. Obtenha o endereço ip do gateway de entrada:

    1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

    2. Na página Mesh Management, clique em no nome da instância do ASM. No painel de navegação à esquerda, escolha ASM Gateways > Ingress Gateway.

    3. Na página Ingress Gateway, anote o Service address do gateway de entrada.

  2. Abra http://<ingress-gateway-ip>/productpage em um navegador. A página de produtos do Bookinfo será carregada. A seção de avaliações no lado direito da página exibe dados diferentes a cada atualização, pois o Deployment de reviews possui três versões (v1, v2, v3) e nenhuma regra de roteamento está configurada ainda.

    Bookinfo product page

Etapa 5: Implementar roteamento de tráfego orientado por GitOps

Com a aplicação Bookinfo implantada, envie uma alteração de roteamento de tráfego pelo fluxo de trabalho GitOps. Este exemplo configura uma regra de VirtualService que roteia o tráfego com base no usuário conectado:

  • Não conectado: A versão v1 de reviews é exibida (sem estrelas).

  • **Conectado como jason**: A versão v2 de reviews é exibida (estrelas pretas).

Atualize os manifestos localmente

  1. Modifique o YAML do VirtualService para o serviço reviews para adicionar roteamento baseado em cabeçalho:

    Este VirtualService referencia subset: v1 e subset: v2 , definidos na DestinationRule para o serviço reviews. A DestinationRule mapeia cada nome de subconjunto para pods com o rótulo version correspondente. A DestinationRule já está incluída no diretório argo-cd/bookinfo do repositório de exemplo.
       apiVersion: networking.istio.io/v1alpha3
       kind: VirtualService
       metadata:
         name: reviews
       spec:
         hosts:
           - reviews
         http:
         - match:
           - headers:
               end-user:
                 exact: jason
           route:
           - destination:
               host: reviews
               subset: v2
         - route:
           - destination:
               host: reviews
               subset: v1
       ---
  2. Modifique o YAML do Deployment para reviews-v1 para dimensioná-lo para 2 réplicas:

       apiVersion: apps/v1
       kind: Deployment
       metadata:
         namespace: argocd
         name: reviews-v1
         labels:
           app: reviews
           version: v1
       spec:
         replicas: 2

Enviar alterações para o git

Faça commit e push dos manifestos atualizados:

git add *
git commit -m "reviews-v1"
git push

Sincronizar as alterações no cluster

Se a sincronização automática estiver ativada no Argo CD, as alterações serão aplicadas ao cluster logo após o push.

Caso a sincronização automática não esteja ativada, sincronize manualmente:

  1. Na interface do Argo CD, localize o cartão bookinfo. O Status mostra OutOfSync, indicando divergência entre o repositório git e o estado do cluster.

    OutOfSync status

  2. Clique em SYNC no cartão bookinfo.

  3. Na caixa de diálogo, clique em SYNCHRONIZE.

Após a conclusão da sincronização, verifique os recursos atualizados no console do ASM e no console do ACK seguindo os mesmos passos descritos em Verifique a implantação.

Verifique o roteamento de tráfego

  1. Abra http://<ingress-gateway-ip>/productpage em um navegador sem fazer login. A versão v1 de reviews será exibida (sem estrelas no lado direito).

    Reviews v1 -- not logged in

  2. Faça login como o usuário jason. Insira qualquer string como senha. Em seguida, acesse a página de produtos novamente. A versão v2 de reviews será exibida (estrelas pretas no lado direito).

    Reviews v2 -- logged in as jason

A regra de roteamento de tráfego agora é gerenciada via git. Alterações futuras em VirtualServices ou outros recursos do Istio seguem o mesmo fluxo de trabalho: atualize o YAML, envie para o git e deixe o Argo CD sincronizar o cluster.