Kubernetes orquestra containers em escala. Parece complicado mas os conceitos básicos são diretos. Aprenda a arquitetura e componentes principais.
Conceitos Principais
Pod
Menor unidade deployável. Wrapper de 1+ containers. Containers no mesmo Pod compartilham network e storage. Efêmero - pode morrer a qualquer momento.
Deployment
Gerencia ReplicaSets (grupos de Pods). Define quantas réplicas rodar. Rolling updates automáticos. Rollback com um comando.
Service
Load balancer interno para Pods. IP estável (Pods têm IPs dinâmicos). ClusterIP (interno), NodePort (externo), LoadBalancer (cloud).
ConfigMap & Secret
ConfigMap: configs não-sensíveis. Secret: senhas, tokens (base64). Injetados como env vars ou volumes. Separa config de código.
Passo a Passo
- Instale Minikube: Cluster K8s local.
brew install minikube(Mac).minikube start. Kubectl instalado junto. Teste:kubectl version. - Crie Deployment: YAML: apiVersion apps/v1, kind Deployment, spec replicas 3, template com container node app.
kubectl apply -f deployment.yaml. - Exponha Service: YAML: kind Service, type LoadBalancer, selector app: minha-app, ports 80:3000.
kubectl apply -f service.yaml. Acesso externo. - Gerencie Pods: Liste:
kubectl get pods. Logs:kubectl logs pod-name. Exec:kubectl exec -it pod-name -- sh. Delete:kubectl delete pod pod-name. - Escale App:
kubectl scale deployment minha-app --replicas=5. K8s cria 2 Pods novos. Load balancer distribui tráfego. Scale down: --replicas=2.
Boas Praticas
Recomendacoes
• Use namespaces para organização
• Labels e selectors para tudo
• Liveness e readiness probes
• Resource limits para cada container
Erros Comuns
Evite estes erros
• Não definir resource limits (OOM kills)
• Hardcodar configs no YAML
• Não usar health checks
Checklist
- Minikube rodando localmente
- Deployment criado com réplicas
- Service expondo aplicação
- ConfigMap para configs
- Pods escalando corretamente