Consumir configuração sem confundir versões
ConfigMaps guardam configuração e Secrets destinam-se a dados sensíveis. Base64 não é cifragem. O acesso ao objeto, aos ficheiros montados, aos backups e ao processo continua a importar.
Distingue uma variável de ambiente obtida no arranque de um ficheiro projetado: uma alteração no objeto não reescreve o ambiente de um processo existente. Volumes de Secret podem receber atualizações com atraso, mas subPath não recebe essa atualização automática.
Mesmo quando o ficheiro muda, a aplicação pode precisar de o reler. Planeia a rotação com coexistência e revogação da credencial anterior, observando qual versão cada consumidor utiliza.
Admissão e scheduling são fases diferentes
Uma quota pode recusar a criação de um Pod antes de haver um Pod Pending. Consulta o erro no criador, por exemplo os eventos do ReplicaSet, em vez de procurar um objeto que não chegou a existir. Um Pod aceite pode ficar Pending porque nenhum nó cumpre simultaneamente requests, afinidade obrigatória, taints, volumes e restantes restrições.
Recursos livres espalhados por vários nós não formam um nó virtual. Uma afinidade preferred contribui para a preferência; uma required exclui nós que não a cumprem. Uma toleration remove um impedimento específico, sem reservar capacidade nem impor colocação.
Autoscaling como cálculo e como controlo
Para uma métrica CPU de utilização, compara o consumo com o request relevante, não com o limit. Num exemplo simplificado com quatro réplicas, métricas completas de Pods prontos, utilização média de 75% e alvo de 50%, a recomendação bruta é ceil(4 × 75/50) = 6. min/maxReplicas, tolerância, métricas ausentes, readiness e políticas de estabilização podem limitar a ação efetiva.
O aumento de réplicas ainda precisa de scheduling e capacidade. Confirma condições e recomendações do HPA, réplicas disponíveis e efeito para o cliente; não declares recuperação só porque desiredReplicas cresceu.
Aceitar uma alteração de configuração
O fragmento associa APP_MODE a uma ConfigMap e API_TOKEN a um Secret; ambos são referências no mesmo namespace do Pod. É um fragmento para leitura, a inserir no container de um manifesto completo. Antes da entrega, confirma que os objetos e chaves existem e que a imagem espera esses nomes.
Num rollout com maxSurge, conta a capacidade temporária e a quota, além do estado final. Mantém uma estratégia de recuperação compatível com os dados e com a credencial ainda aceite pelo serviço. Uma aplicação viva mas não pronta deve ser investigada pelo sinal correspondente, aproveitando a distinção entre startup, readiness e liveness ensinada na aula de diagnóstico.
env:
- name: APP_MODE
valueFrom:
configMapKeyRef:
name: app-settings
key: mode
- name: API_TOKEN
valueFrom:
secretKeyRef:
name: api-credentials
key: tokenUma rotação atualiza o Secret, mas processos com variável de ambiente continuam com a credencial anterior. O rollout de substituição não cria Pods porque a quota está esgotada. Identifica as duas causas, organiza capacidade temporária e só revoga a credencial antiga após observar consumidores atualizados.
Armadilhas comuns
Confundir encoding com proteção; interpretar Pending como recusa de admissão; somar capacidade entre nós para um único Pod; tomar a recomendação HPA pela disponibilidade final.
Tópicos relacionados: Administração Kubernetes · Diagnóstico e recuperação
Liga a versão consumida à admissão, à capacidade e ao efeito observado.
Referências
- Secrets · Kubernetes v1.37 documentation; relevant sections read 2026-10-23
- Resource quotas · Kubernetes v1.37 documentation; relevant sections read 2026-10-23
- Assigning Pods to nodes · Kubernetes v1.37 documentation; relevant sections read 2026-10-23
- Horizontal Pod Autoscaling · Kubernetes v1.37 documentation; relevant sections read 2026-10-23
- ConfigMaps · Kubernetes v1.35 documentation snapshot