técnica
etapa: provision
2 min de leitura
Fundamentos de Kubernetes
O Kubernetes executa contêineres em um cluster e os mantém no estado que você declarou. Aprenda os poucos objetos que importam e as configurações que impedem que um pod ruim derrube tudo.
kubectlHelm / Kustomizek9skind / minikubeKyverno / OPA GatekeeperArgo CD
Os objetos principais
- Pod: um ou mais contêineres que rodam juntos e compartilham uma identidade de rede. A menor unidade que você implanta, e descartável.
- Deployment: declara quantas réplicas de um pod executar e como distribuir as mudanças. Um ReplicaSet por baixo mantém a contagem.
- Service: um nome e um endereço estáveis que balanceiam carga para os pods correspondentes, que vêm e vão.
- Ingress ou Gateway: roteia o tráfego externo por host e caminho para os services.
- ConfigMap e Secret: configuração e valores sensíveis injetados como variáveis de ambiente ou arquivos. Um Secret é codificado, não criptografado por padrão; proteja-o com criptografia em repouso e acesso restrito.
- Namespace: um escopo para nomes, quotas e regras de acesso, usado para separar equipes ou ambientes.
- O control loop: você declara o estado desejado; os controllers fazem continuamente o estado real corresponder a ele.
Um deployment que vale a pena rodar
Defina requests e limits de recursos, probes de saúde, uma estratégia de rollout e um security context restrito. Isso é a diferença entre um pod que se comporta bem e um que surpreende você.
apiVersion: apps/v1
kind: Deployment
metadata:
name: api
spec:
replicas: 3
selector:
matchLabels: { app: api }
strategy:
rollingUpdate: { maxUnavailable: 0, maxSurge: 1 }
template:
metadata:
labels: { app: api }
spec:
securityContext:
runAsNonRoot: true
seccompProfile: { type: RuntimeDefault }
containers:
- name: api
image: registry.example.com/api@sha256:<digest>
ports: [{ containerPort: 8080 }]
resources:
requests: { cpu: 100m, memory: 128Mi }
limits: { memory: 256Mi }
readinessProbe:
httpGet: { path: /ready, port: 8080 }
livenessProbe:
httpGet: { path: /health, port: 8080 }
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities: { drop: ["ALL"] }Comandos do dia a dia
Prefira mudar o cluster por controle de versão e um controller GitOps, e deixe o kubectl para leitura e emergências.
kubectl get pods -n prod -o wide
kubectl describe pod api-7c9d -n prod # os eventos explicam a maioria das falhas
kubectl logs deploy/api -n prod --tail=100 -f
kubectl rollout status deploy/api -n prod
kubectl rollout undo deploy/api -n prod # volta para a revisão anterior
kubectl top pods -n prodErros comuns
- Sem limites de recursos: um pod deixa seus vizinhos sem recursos.
- Liveness probes que dependem de serviços externos, reiniciando pods saudáveis durante uma queda.
- Usar tags latest ou mutáveis, de modo que reiniciar um pod muda a versão.
- Tudo no namespace default, com permissões em todo o cluster para cada workload.
- Tratar o cluster como aquilo que você opera, em vez da plataforma que suas equipes usam.
conexões no mapa
- Contêineres e imagensé agendado porFundamentos de Kubernetes
- Estratégias de release e rollbackroda sobreFundamentos de Kubernetes
- Infraestrutura como códigoprovisionaFundamentos de Kubernetes
- Fundamentos de Kubernetesé observado porObservabilidade: métricas, logs e traces
atualizado em 14/10/2026 · fontes para aprofundar · reportar erro
em outros domínios
- Containers — imagens e cadeia de suprimentoscloudseco mesmo cluster visto como plataforma e como superfície de ataque
Estude antes
Desbloqueia
teste o que entendeu
Carregando perguntas…