K8s em Exemplos: Services (ClusterIP)
| Um Service fornece um IP estável e nome DNS para acessar Pods. IPs de Pods são não confiáveis - eles mudam em restarts e scaling. Services resolvem isso com um endpoint persistente. ClusterIP é o tipo padrão e é apenas interno. |
| service.yaml | |
| Services usam a API core | |
|
| |
| service-multiport.yaml | |
| Services podem expor múltiplas portas. Pods devem ter TODAS as labels no selector para receber tráfego. | |
| terminal | |
| Cada Service ganha um objeto Endpoint automaticamente. O Endpoint mantém uma lista em tempo real de IPs de Pods correspondendo ao selector. | |
| terminal | |
| Observe endpoints atualizando em tempo real conforme Pods escalam para cima e para baixo. | |
| pod-env.yaml | |
| Service discovery via DNS é preferido. Todo Service ganha um nome DNS: | |
| Referências cross-namespace usam o formato | |
| O FQDN completo inclui | |
| terminal | |
| O DNS do Kubernetes resolve nomes de service dinamicamente. Mais confiável que variáveis de ambiente que são definidas apenas na inicialização do Pod. | |
| service-session-affinity.yaml | |
| Session affinity roteia um cliente para o mesmo Pod por um período. Útil para apps stateful. Padrão é | |
| terminal | |
| Tipos de Service constroem um sobre o outro: ClusterIP (interno) → NodePort (adiciona porta externa) → LoadBalancer (adiciona LB cloud). | |
| terminal | |
| Debug roteamento de Service com kubectl. Verifique Endpoints primeiro - se vazio, seu selector não corresponde a nenhum Pod. | |
| terminal | |
| Teste conectividade do Service de dentro do cluster com um Pod temporário. | |