Home > Blog > Desenvolvimento Web
Desenvolvimento Web
JavaScript
Programação

ConfigMap e Secrets no Kubernetes com Node.js

Atualizado em: 20 de outubro de 2026

Rack de servidores processando fluxos de dados no Node.js

ConfigMap e Secrets no Kubernetes separam configuração do código da aplicação. ConfigMaps armazenam valores não sensíveis; Secrets representam credenciais, tokens e chaves que exigem controles adicionais.

Essa separação facilita promover a mesma imagem entre ambientes sem reconstruir o container.

ConfigMap

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  LOG_LEVEL: info
  FEATURE_X: "false"

Secret

apiVersion: v1
kind: Secret
metadata:
  name: app-secret
type: Opaque
stringData:
  DATABASE_URL: postgresql://...

stringData facilita autoria, mas o Secret ainda precisa ser protegido no repositório e no pipeline.

Injetando variáveis

envFrom:
  - configMapRef:
      name: app-config
  - secretRef:
      name: app-secret

No Node.js, leia process.env, converta tipos e valide tudo na inicialização. Consulte Variáveis de Ambiente no Node.js.

Validação

const port = Number(process.env.PORT ?? 3000);
if (!Number.isInteger(port)) {
  throw new Error('PORT inválida');
}

if (!process.env.DATABASE_URL) {
  throw new Error('DATABASE_URL obrigatória');
}

Base64 não é criptografia

O campo data de um Secret usa Base64, que apenas codifica. Proteja etcd com criptografia em repouso, RBAC mínimo e acesso auditado.

Montagem como volume

volumes:
  - name: secrets
    secret:
      secretName: app-secret

volumeMounts:
  - name: secrets
    mountPath: /var/run/secrets/app
    readOnly: true

Arquivos montados podem ser atualizados pela plataforma. A aplicação precisa decidir se recarrega ou exige restart.

Variável ou arquivo

Variáveis são simples, mas permanecem no ambiente do processo. Arquivos funcionam melhor para certificados e material com múltiplas linhas. Em ambos os casos, evite logs e dumps.

Atualização e rollout

Alterar ConfigMap não reinicia automaticamente todos os pods quando o valor é injetado como variável. Use checksum no template, ferramenta de rollout ou processo explícito de atualização.

Imutabilidade

ConfigMaps e Secrets imutáveis evitam mudanças inesperadas e podem melhorar escalabilidade. Crie um novo nome por versão e atualize o Deployment.

Secret managers externos

Para rotação e auditoria avançadas, integre um secret manager usando CSI driver ou operador. Evite sincronizar segredos desnecessariamente para todos os namespaces.

Consulte Secret Management no Node.js.

RBAC

Conceda leitura apenas ao ServiceAccount necessário. Permissão para listar Secrets costuma ser mais ampla que o necessário.

Namespaces

Configurações são namespaced. Não use um namespace compartilhado para aplicações com níveis de confiança diferentes sem controles adequados.

Git

Não versione Secrets em texto puro. Para GitOps, use criptografia como SOPS ou soluções sealed, com chaves e acesso bem administrados.

Observabilidade

Registre versão ou checksum da configuração, nunca o valor secreto. Isso permite relacionar incidentes a mudanças sem vazar credenciais.

Erros comuns

  • tratar Base64 como proteção;
  • versionar Secret aberto;
  • não validar variáveis;
  • dar acesso amplo ao ServiceAccount;
  • esperar restart automático;
  • registrar configuração completa;
  • usar Secret para dados públicos sem necessidade.

Conclusão

ConfigMap e Secrets no Kubernetes desacoplam configuração e imagem. Use ConfigMap para parâmetros não sensíveis, Secret para credenciais e um secret manager quando rotação e auditoria forem essenciais.

Consulte a documentação de ConfigMap e a documentação de Secrets do Kubernetes.

10 melhores cursos de programação em 2026

Descubra os melhores cursos de programação. Aprenda a escolher o curso ideal para iniciar ou avançar na carreira de desenvolvedor

POSTS RELACIONADOS

Ver todos

Seta para a direita