Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Crie várias aplicações com um ApplicationSet

Última atualização: Jun 27, 2026

O ApplicationSet simplifica a orquestração de aplicações em vários clusters: a partir de um único modelo e gerador, cria automaticamente uma ou mais Argo CD Applications. Este tópico explica como usar um ApplicationSet para criar várias aplicações.

Use esta abordagem quando:

  • Implantações multiambiente: for necessário implantar a mesma aplicação em produção e staging com configurações específicas por ambiente.

  • Complementos de cluster: precisar instalar ferramentas compartilhadas (monitoramento, logs, ingress) em um conjunto de clusters.

  • Implantações self-service: quiser permitir que as equipes implantem nos clusters sob sua responsabilidade sem modificar configurações compartilhadas.

Como funciona

O controlador do ApplicationSet processa o manifesto em quatro etapas:

  1. O gerador produz parâmetros de chave-valor. No gerador List, cada elemento se torna um conjunto de parâmetros.

  2. Os parâmetros são substituídos no modelo, uma vez para cada conjunto de parâmetros.

  3. Cada modelo renderizado se transforma em um recurso Argo CD Application.

  4. O controlador do Argo CD detecta os novos recursos Application e gerencia o ciclo de vida de sincronização.

Pré-requisitos

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

Implante um ApplicationSet

Este exemplo implanta o echo-server em dois clusters (produção e staging), cada um com seu próprio subdiretório de manifestos para configuração específica do ambiente.

Estrutura do repositório:

.
├── Dockerfile
├── go.mod
├── go.sum
├── main.go
└── manifests
    └── directory
        ├── production
        │   ├── deployment.yaml
        │   └── service.yaml
        └── staging
            ├── deployment.yaml
            └── service.yaml

Crie o manifesto do ApplicationSet

Crie o arquivo applicationset.yaml com o seguinte conteúdo.

O gerador List define dois conjuntos de parâmetros, um por cluster. Os valores {{cluster}} e {{url}} são substituídos no modelo e geram duas Applications: production-echo-server e staging-echo-server. Cada uma aponta para o subdiretório de manifestos do respectivo ambiente.

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: echo-server
spec:
  generators:
  - list:
      elements:
      - cluster: production
        url: https://47.91.XX.XX:6443
      - cluster: staging
        url: https://47.111.XX.XX:6443
      # To add more clusters, append another element here:
      # - cluster: <cluster-name>
      #   url: <cluster-api-server-url>
  template:
    metadata:
      name: '{{cluster}}-echo-server'
    spec:
      project: default
      source:
        repoURL: https://code.aliyun.com/shuwei.hsw/echo-server.git
        targetRevision: main
        path: manifests/directory/{{cluster}}
      destination:
        server: '{{url}}'
        namespace: multi-echo-server

Aplique o ApplicationSet

kubectl -n argocd apply -f applicationset.yaml

Verifique a criação das aplicações

kubectl -n argocd get application

Saída esperada:

NAME                     SYNC STATUS   HEALTH STATUS
production-echo-server   OutOfSync     Missing
staging-echo-server      OutOfSync     Missing

O status OutOfSync indica que as Applications existem, mas ainda não foram implantadas.

Sincronize as aplicações

argocd app sync production-echo-server staging-echo-server

Verifique o acesso

Teste o acesso a cada ambiente após a conclusão da sincronização.

Cluster Production (echo-server v1.0):

curl XX.XX.XX.XX:8080/version

Saída esperada:

"Hello Echo Server v1.0"

Cluster Staging (echo-server v2.0):

curl XX.XX.XX.XX:8080/version

Saída esperada:

"Hello Echo Server v2.0"

Substitua XX.XX.XX.XX pelo IP externo do Service echo-server em cada cluster.

Próximos passos