## glossário
O que é Kubernetes?
Kubernetes (abreviado como K8s) é uma plataforma de orquestração de containers criada pelo Google e doada à CNCF em 2015. Enquanto o Docker resolve como executar um container em uma máquina, o Kubernetes resolve como executar milhares deles em dezenas de máquinas, sem intervenção manual.
Sua característica definidora é o modelo declarativo: você não dá ordens passo a passo, você descreve o estado desejado. "Quero cinco réplicas desta aplicação, sempre." O cluster compara continuamente o estado real com o declarado e age para reconciliá-los — se um container morre, outro sobe sozinho.
Os objetos que você precisa conhecer
- Pod — a menor unidade implantável; um ou mais containers que compartilham rede e armazenamento.
- Deployment — gerencia réplicas de pods e cuida de atualizações graduais e rollback.
- Service — dá um endereço estável a um conjunto de pods, distribuindo tráfego entre eles.
- Ingress — expõe serviços para fora do cluster, com roteamento por domínio e caminho.
- ConfigMap e Secret — separam configuração e credenciais da imagem da aplicação.
- Namespace — divide o cluster em ambientes logicamente isolados.
apiVersion: apps/v1
kind: Deployment
metadata:
name: minha-api
spec:
replicas: 3
selector:
matchLabels:
app: minha-api
template:
metadata:
labels:
app: minha-api
spec:
containers:
- name: api
image: minha-api:1.0
ports:
- containerPort: 3000
resources:
requests: { cpu: "100m", memory: "128Mi" }
limits: { cpu: "500m", memory: "512Mi" }O que o cluster faz por você
Depois que o estado é declarado, o Kubernetes assume responsabilidades que antes eram manuais: reinicia containers que falham, substitui os que não respondem às sondagens de saúde, distribui pods entre máquinas conforme recursos disponíveis, escala réplicas com base em uso de CPU e faz atualizações graduais sem derrubar o serviço.
kubectl apply -f deployment.yaml # aplica o estado declarado
kubectl get pods -w # acompanha os pods ao vivo
kubectl logs -f <pod> # segue os logs
kubectl describe pod <pod> # investiga por que algo falhou
kubectl rollout undo deploy/minha-api # volta para a versão anteriorA pergunta honesta: você precisa disso?
Kubernetes resolve problemas de escala e resiliência que a maioria dos projetos não tem. O custo é real: curva de aprendizado íngreme, complexidade operacional e necessidade de gente dedicada. Para uma aplicação com poucos serviços, plataformas gerenciadas entregam o mesmo resultado prático com uma fração do esforço. A discussão sobre reduzir essa carga cognitiva está no artigo de platform engineering.
## faq
Perguntas frequentes
Kubernetes substitui o Docker?
Não. Ele orquestra containers, que continuam sendo construídos com Docker ou ferramentas compatíveis. O que mudou é que o Kubernetes deixou de usar o Docker como runtime interno, adotando o containerd — mas isso é transparente para quem constrói as imagens.
Qual a diferença entre Kubernetes gerenciado e autogerenciado?
Em serviços gerenciados como EKS, GKE e AKS, o provedor cuida do plano de controle, atualizações e alta disponibilidade. No autogerenciado, sua equipe assume tudo isso. A diferença de esforço operacional é grande, e a maioria das empresas opta pelo gerenciado.
Por que meu pod fica em CrashLoopBackOff?
Significa que o container inicia, falha e o Kubernetes tenta de novo em intervalos crescentes. As causas mais comuns são erro na aplicação ao subir, variável de ambiente ausente, falha ao conectar em uma dependência ou limite de memória baixo demais. O caminho é ler kubectl logs e kubectl describe pod.
## leia também