Pular para conteúdo

Helm e Kustomize no Kubernetes

O que é

Helm e Kustomize são abordagens para gerenciar manifests Kubernetes em escala. - Helm: empacotamento por templates e valores. - Kustomize: composição de YAML nativo com overlays e patches.

Por que isso existe

Copiar YAML manualmente por ambiente aumenta drift, inconsistência de labels e risco de erro em deploy. Essas ferramentas reduzem duplicação e melhoram governança.

Como funciona internamente

Helm

Chart (templates + values.yaml)
   -> renderização
   -> release no cluster (secret/configmap com histórico)

Comandos úteis:

helm lint charts/api
helm template api charts/api -f values-prod.yaml
helm upgrade --install api charts/api -n prod -f values-prod.yaml

Kustomize

base/ (YAML comum)
overlays/dev, overlays/prod (patches)
   -> kustomize build
   -> kubectl apply

Comandos úteis:

kustomize build overlays/prod
kubectl apply -k overlays/prod

Helm vs Kustomize

  • Use Helm para aplicações distribuídas como charts reutilizáveis.
  • Use Kustomize para customizar deployment por ambiente sem template language.
  • Combinação comum: Helm gera base e Kustomize aplica patches organizacionais.

Exemplos práticos

Exemplo de overlay para produção

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - ../../base
patches:
  - target:
      kind: Deployment
      name: api
    patch: |-
      - op: replace
        path: /spec/replicas
        value: 4

Exemplo de values por ambiente (Helm)

image:
  repository: 123456789.dkr.ecr.us-east-1.amazonaws.com/api
  tag: "1.12.3"
resources:
  limits:
    cpu: "500m"
    memory: "512Mi"

Boas práticas

  • Validar render em CI (helm template, kustomize build).
  • Padronizar labels e annotations de observabilidade.
  • Versionar chart e manter changelog de breaking changes.
  • Evitar lógica excessiva em templates Helm.

Armadilhas comuns

  • Usar Helm e Kustomize sem fronteira clara de responsabilidade.
  • Duplicar values por ambiente sem herança/reuso.
  • Não fixar versão de chart externo.

Referências relacionadas