Workstation Logo
Produtos
Labs de IAAgentes OpenAIAgentes ClaudeGrok BotWorkstation CRM (WSL CRM)MarketingTodos os Produtos
Soluções IA
Estações de Trabalho IAAI SME PackagesIA PrivadaClusters GPUIA EdgeLaboratório IA EmpresarialIA por Indústria
Serviços
Modernização de plataformaEngenharia digitalFundações de dados e IAOperações autónomasConsultoria de IAAutomação DevOpsCibersegurançaDesenvolvimento de softwareConstrução de agentesConfiguração MLOps
Sobre Nós
ParceirosHistórias de Clientes
Artigos
Documentação
WSL ProxyRing PromoterWSL VaultJobshoutSysOps 24/7
Blog
Contacte-nosLogin
Workstation

Estações de trabalho de IA, software multiagente de IA, infraestrutura de GPU e soluções de agentes inteligentes para empresas modernas.

Contacte-nos

Soluções de IA

Estações de Trabalho IAAI SME PackagesIA PrivadaClusters GPUIA EdgeLaboratório IA EmpresarialIA por Indústria

Produtos

Todos os ProdutosWSL CRM e ERPMarketingAgentes OpenAIWSL ProxyRing PromoterWSL VaultJobshoutSysOps 24/7

Empresa

Sobre NósPor que WorkstationParceirosHistórias de ClientesPreçosContato

Recursos

ArtigosDocumentaçãoBlogPesquisarMapa do Site
Escritório Reino Unido
77-79 Marlowes, Hemel Hempstead HP1 1LFComo chegar: pegue a saída 20 da M25, Outer LondonN.º da empresa: 11641870Seg - Sex: 9:00 - 18:00 GMT
+44 7515 356 146
Escritório Bélgica
Workstation SRL, Rue Vanderkindere 34, 1180 Uccle, BrusselsBE 0751.518.683Seg - Sex: 9:00 - 18:00 CET
+32 492 45 67 46
Escritório Índia
#159 Sector 9, Pocket 1, DDA Flats, 110077 Dwarka, New Delhi
+91 98881 98841

© 2026 Workstation AI. Todos os direitos reservados.

PrivacidadeCookiesTermos de ServiçoMapa do site

Loading blog...

Home / Blog
DevOpsKubernetesRke2

Entrega contínua Kubernetes: pipelines GitOps com ArgoCD e Flux

Crie pipelines de implantação automatizados e confiáveis ​​para Kubernetes usando GitOps com ArgoCD e Flux

Balinder Walia27 de maio de 20259 min read

A entrega contínua no Kubernetes evoluiu muito além da simples kubectl apply comandos. As equipes modernas estão adotando o GitOps, um paradigma que usa o Git como a única fonte de verdade para infraestrutura declarativa e configuração de aplicativos. Ao combinar os princípios do GitOps com ferramentas como ArgoCD e Flux CD, as organizações podem obter pipelines de implantação confiáveis, auditáveis ​​e automatizados que podem ser dimensionados em clusters e ambientes.

Este guia aborda a arquitetura, a configuração e as práticas recomendadas para a construção de pipelines de entrega contínua de nível de produção no Kubernetes usando a abordagem GitOps.

Princípios do GitOps

O GitOps é baseado em quatro princípios básicos que mudam fundamentalmente a forma como as equipes gerenciam as implantações:

Pipeline de CI/CD com GitOpsGit PushCódigo FonteConstruirCompilar e LintTesteUnidade e IntegraçãoRegistroEnvio de imagemImplantar em K8sArgoCD/FluxoArgo CDSincronizar e reconciliarFluxo CDReconciliador GitRepositório Git = Fonte Única de Verdade
  • Configuração declarativa - Todo o estado desejado do seu sistema é descrito de forma declarativa. Para Kubernetes, isso significa manifestos YAML, gráficos Helm ou sobreposições Kustomize armazenados no Git.
  • Versão controlada - Git serve como a única fonte da verdade. Cada mudança passa por uma solicitação pull, fornecendo uma trilha de auditoria completa e permitindo reversões fáceis por meio da reversão de commits.
  • Reconciliação Automatizada - Um agente em execução no cluster compara continuamente o estado desejado no Git com o estado real no cluster e reconcilia automaticamente qualquer desvio.
  • Observação Contínua - O sistema monitora continuamente o repositório Git e o estado do cluster, alertando sobre divergências e garantindo que o cluster sempre corresponda à configuração declarada.

Esses princípios eliminam etapas manuais de implantação, reduzem erros humanos e fornecem um fluxo de trabalho consistente, independentemente da complexidade do cluster.

Arquitetura e configuração do ArgoCD

ArgoCD é a ferramenta GitOps mais amplamente adotada para Kubernetes. Ele fornece uma UI web poderosa, CLI e API para gerenciar implantações de aplicativos em clusters.

Fluxo de trabalho GitOpsDesenvolvedorMesclagem push/PRRepositório GitEstado desejadoArgo CDRepositório de relógiosDetecta desvioAglomerado K8sEstado ao vivoSincronizado automaticamenteReversão = Git ReverterTrilha de auditoria: cada implantação é um commit do Git

Componentes principais

ArgoCD consiste em vários componentes principais que funcionam juntos:

  • Servidor API - Expõe um gRPC/REST API e atende a UI da web. Lida com autenticação, RBAC e integrações externas.
  • Servidor de repositório - Clona repositórios Git e gera manifestos Kubernetes a partir de gráficos Helm, Kustomize ou YAML simples.
  • Controlador de aplicativos - Monitora continuamente os aplicativos em execução e compara o estado ativo com o estado desejado no Git.
  • Redis - Fornece cache para o servidor de repositório e controlador de aplicativo.

Instalação

Implante o ArgoCD em seu cluster usando os manifestos oficiais ou gráfico do Helm:

# Create namespace and install ArgoCD
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

# Or via Helm
helm repo add argo https://argoproj.github.io/argo-helm
helm install argocd argo/argo-cd \
  --namespace argocd \
  --create-namespace \
  --set server.service.type=LoadBalancer

Definindo Aplicativos

ArgoCD usa um Application recurso personalizado para definir o que implantar e onde. Aqui está uma definição típica de aplicativo:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: my-web-app
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/myorg/k8s-manifests.git
    targetRevision: main
    path: apps/my-web-app/overlays/production
  destination:
    server: https://kubernetes.default.svc
    namespace: production
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
      - CreateNamespace=true
    retry:
      limit: 5
      backoff:
        duration: 5s
        factor: 2
        maxDuration: 3m

O syncPolicy.automated seção permite a sincronização automática. O prune opção remove recursos que não estão mais definidos no Git, enquanto selfHeal reverte alterações manuais feitas diretamente no cluster.

Flux CD: uma abordagem alternativa

O Flux CD adota uma abordagem arquitetural diferente para GitOps. Em vez de um servidor centralizado com uma UI, o Flux opera como um conjunto de controladores Kubernetes, cada um lidando com uma preocupação específica.

Componentes de fluxo

  • Controlador de origem - Gerencia repositórios Git, repositórios Helm e fontes de artefatos OCI.
  • Controlador personalizado - Aplica sobreposições Kustomize e manifestos YAML simples.
  • Controlador de leme - Gerencia lançamentos de gráficos do Helm por meio de HelmRelease recursos personalizados.
  • Controlador de Notificação - Lida com eventos de entrada e saída, integrando-se com Slack, Teams e provedores de webhook.
  • Controladores de automação de imagem - Digitalize registros de contêineres e atualize manifestos quando novas imagens estiverem disponíveis.

Fluxo de inicialização

# Bootstrap Flux on a cluster with a GitHub repository
flux bootstrap github \
  --owner=myorg \
  --repository=fleet-infra \
  --branch=main \
  --path=clusters/production \
  --personal

# Define a HelmRelease
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: nginx-ingress
  namespace: ingress-system
spec:
  interval: 5m
  chart:
    spec:
      chart: ingress-nginx
      version: "4.x"
      sourceRef:
        kind: HelmRepository
        name: ingress-nginx
        namespace: flux-system
  values:
    controller:
      replicaCount: 3
      metrics:
        enabled: true

ArgoCD vs Flux: quando escolher qual

O ArgoCD é ideal quando você precisa de uma interface de usuário da web avançada para visibilidade, multilocação com RBAC refinado e um plano de gerenciamento centralizado. O Flux brilha em ambientes que preferem uma arquitetura leve baseada em controlador, precisam de recursos de automação de imagem ou desejam uma integração mais profunda com o ecossistema Kubernetes API.

Gerenciamento de gráficos Helm em GitOps

Os gráficos Helm são o formato de empacotamento de fato para aplicativos Kubernetes. Em um fluxo de trabalho GitOps, o gerenciamento de valores do Helm em vários ambientes requer uma organização cuidadosa.

# Repository structure for multi-environment Helm management
k8s-manifests/
  base/
    my-app/
      Chart.yaml
      values.yaml          # Default values
      templates/
        deployment.yaml
        service.yaml
        ingress.yaml
  environments/
    dev/
      my-app/
        values.yaml        # Dev overrides
    staging/
      my-app/
        values.yaml        # Staging overrides
    production/
      my-app/
        values.yaml        # Production overrides

Tanto o ArgoCD quanto o Flux oferecem suporte nativo ao Helm. ArgoCD renderiza gráficos do lado do servidor por meio de seu servidor de repositório, enquanto o Flux usa o Helm SDK diretamente em seu Helm Controller.

Estratégias de implantação

A escolha da estratégia de implantação correta minimiza o risco e garante versões sem tempo de inatividade.

Atualizações contínuas

A estratégia Kubernetes padrão. Os pods são gradualmente substituídos por novas versões. Configurar maxSurge e maxUnavailable para controlar a velocidade de implementação.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 5
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  template:
    spec:
      containers:
        - name: app
          image: myapp:v2.1.0
          readinessProbe:
            httpGet:
              path: /health
              port: 8080
            initialDelaySeconds: 5
            periodSeconds: 10

Implantações Azul-Verde

Execute dois ambientes idênticos (azul e verde). Implante a nova versão no ambiente inativo, verifique-a e alterne o tráfego. Isso fornece reversão instantânea, voltando para o ambiente anterior. Implemente com seletores de rótulos de serviço ou gerenciamento de tráfego do Istio.

Implantações Canário

Direcione gradualmente uma pequena porcentagem do tráfego para a nova versão, aumentando a porcentagem à medida que a confiança aumenta. Ferramentas como Flagger e Argo Rollouts automatizam a análise canário com promoção baseada em métricas.

apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
  name: my-app
spec:
  replicas: 5
  strategy:
    canary:
      steps:
        - setWeight: 10
        - pause: { duration: 5m }
        - setWeight: 30
        - pause: { duration: 5m }
        - setWeight: 60
        - pause: { duration: 5m }
      canaryService: my-app-canary
      stableService: my-app-stable
      trafficRouting:
        istio:
          virtualService:
            name: my-app-vsvc
            routes:
              - primary

Reversões automatizadas

O GitOps simplifica as reversões: basta reverter o commit do Git. No entanto, reversões automatizadas baseadas em verificações de integridade fornecem uma rede de segurança adicional.

ArgoCD oferece suporte a reversões automatizadas por meio de seu sistema de sincronização e avaliação de integridade. Se um aplicativo entrar em um estado degradado após uma sincronização, o ArgoCD poderá reverter automaticamente para o último estado bom conhecido.

Para cenários de reversão mais sofisticados, Argo Rollouts e Flagger podem analisar métricas do Prometheus, executar testes automatizados e abortar implementações que mostram desempenho degradado.

Gerenciamento de segredos com segredos selados

Armazenar segredos no Git é um desafio crítico para o GitOps. Sealed Secrets resolve isso criptografando segredos que só podem ser descriptografados pelo controlador em execução no cluster de destino.

# Install Sealed Secrets controller
helm repo add sealed-secrets https://bitnami-labs.github.io/sealed-secrets
helm install sealed-secrets sealed-secrets/sealed-secrets \
  --namespace kube-system

# Encrypt a secret
kubectl create secret generic db-credentials \
  --from-literal=username=admin \
  --from-literal=password=s3cure-p@ss \
  --dry-run=client -o yaml | \
  kubeseal --format yaml > db-credentials-sealed.yaml

O resultado SealedSecret recurso pode ser comprometido com segurança no Git. Somente o controlador Sealed Secrets no cluster de destino contém a chave privada necessária para descriptografá-lo. Abordagens alternativas incluem Operador de Segredos Externos (para extrair do AWS Secrets Manager, HashiCorp Vault, etc.) e SOPS para criptografia em nível de arquivo.

Monitorando implantações

A visibilidade do status de implantação é essencial para pipelines de produção de GitOps. Implementar monitoramento em vários níveis:

  • Métricas ArgoCD - ArgoCD expõe métricas do Prometheus para status de sincronização, integridade e duração da operação. Crie painéis Grafana para rastrear a frequência de implantação e as taxas de falha.
  • Eventos Kubernetes - Monitore eventos de agendamento de pod, extração de imagem e sondagem de prontidão para detectar problemas antecipadamente.
  • Verificações de integridade do aplicativo - Configure verificações de integridade personalizadas no ArgoCD usando scripts Lua para definir o que "saudável" significa para seus recursos específicos.
  • Alerta - Integre notificações do ArgoCD com Slack, PagerDuty ou e-mail para alertar sobre falhas de sincronização, degradação da saúde ou detecção de desvios.
# ArgoCD Notification ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-notifications-cm
  namespace: argocd
data:
  trigger.on-sync-failed: |
    - when: app.status.operationState.phase in ['Error', 'Failed']
      send: [slack-notification]
  template.slack-notification: |
    message: |
      Application {{.app.metadata.name}} sync {{.app.status.operationState.phase}}.
      Revision: {{.app.status.sync.revision}}
  service.slack: |
    token: $slack-token
    channel: deployments

Entrega multicluster

À medida que as organizações crescem, a implantação em vários clusters torna-se necessária. ArgoCD oferece suporte nativo ao gerenciamento de vários clusters, registrando clusters externos. O Flux consegue isso por meio de um cluster de gerenciamento que inicializa clusters de carga de trabalho.

O controlador ApplicationSet no ArgoCD é particularmente poderoso para cenários de vários clusters. Ele pode gerar recursos de aplicativos dinamicamente com base em listas de clusters, diretórios Git ou eventos de pull request.

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: my-app-set
  namespace: argocd
spec:
  generators:
    - clusters:
        selector:
          matchLabels:
            env: production
  template:
    metadata:
      name: 'my-app-{{name}}'
    spec:
      project: default
      source:
        repoURL: https://github.com/myorg/k8s-manifests.git
        targetRevision: main
        path: 'apps/my-app/overlays/{{metadata.labels.region}}'
      destination:
        server: '{{server}}'
        namespace: my-app

Conclusão

GitOps com ArgoCD ou Flux CD fornece uma base robusta para entrega contínua Kubernetes. Ao tratar o Git como a fonte da verdade, automatizando a reconciliação e aproveitando estratégias de entrega progressiva, as equipes podem implantar com confiança e se recuperar rapidamente de falhas. Comece com uma configuração simples de cluster único, estabeleça sua estrutura de repositório Git e adote gradualmente padrões avançados, como implantações canário, gerenciamento de vários clusters e políticas de reversão automatizadas à medida que sua plataforma amadurece.

O investimento na infraestrutura GitOps rende dividendos por meio de maior confiabilidade, resposta mais rápida a incidentes, trilhas de auditoria completas e uma experiência de desenvolvedor que torna as implantações tão simples quanto mesclar uma solicitação pull.