🚀 O que eu aprendi sobre Kubernetes Service (e por que isso finalmente fez sentido pra mim)
Depois de apanhar um pouco tentando entender como minha API realmente “se comunica” dentro do cluster, finalmente caiu a ficha sobre o papel do Service no Kubernetes.
Se você também já ficou confuso com Pods mudando de IP, balanceamento e tipos de Service… esse resumo pode te ajudar 👇
🧠 Primeiro insight (o mais importante)
👉 Pods são efêmeros
Eles sobem e caem
O IP muda o tempo todo
👉 Service resolve isso
Dá um IP fixo + DNS estável
E ainda faz load balancing automaticamente
⚙️ Como o Service realmente funciona
O Service não “conhece” ReplicaSet, Deployment nem nada disso.
Ele só faz:
selector:
app: minha-api
E pensa:
“Vou mandar tráfego pra qualquer Pod com essa label”
💥 Pronto. É assim que ele encontra os Pods.
⚖️ Load Balancing
Se você tem 3 Pods:
Pod A (IP 10.0.0.1)
Pod B (IP 10.0.0.2)
Pod C (IP 10.0.0.3)
O Service faz:
Cliente → Service → distribui entre A, B, C
👉 Você não precisa saber os IPs 👉 Você não precisa atualizar nada manualmente
🔌 Sobre portas
ports:
- port: 80 targetPort: 3000 port → porta do Service
targetPort → porta do container
💡 Dica: use named ports pra deixar mais claro:
ports:
- port: 80 targetPort: http Um ponto importante. Esse (http) é apenas o nome dado para a porta na sessão de containers.ports dentro do yaml do POD, ou no meu caso do ReplicaSet.
🌐 Os 2 tipos mais usados na prática
🔵 1. ClusterIP (padrão)
👉 Usado para comunicação interna
type: ClusterIP
✔️ Só funciona dentro do cluster ✔️ Ideal para microservices ✔️ Mais seguro
Exemplo real:
backend falando com banco
API interna chamando outro serviço
🟢 2. LoadBalancer
👉 Usado para expor para fora
type: LoadBalancer
✔️ Cria um IP externo ✔️ Acessível via internet ✔️ Ideal para APIs públicas
Exemplo:
sua API que será consumida por frontend ou terceiros
🧠 Boas práticas que aprendi
✅ Use labels consistentes (app, tier, etc.) ✅ Prefira ClusterIP por padrão (segurança) ✅ Só use LoadBalancer quando precisar expor ✅ Use named ports pra facilitar manutenção ✅ Sempre confira os endpoints se algo não funcionar.
🔥 Resumo mental
Pod = efêmero
Service = estável
Labels = conexão 🔗
Service = load balancer automático ⚖️
💬 Conclusão
O Service não é só “um detalhe” do Kubernetes.
Ele é o que transforma:
👉 containers isolados em 👉 um sistema distribuído que funciona de verdade
Top comments (0)