Capítulo 4.1 - Introdução aos Serviços
Objetivos de Aprendizagem
Ao final deste capítulo, você será capaz de:
- Entender o problema que os Serviços resolvem
- Explicar o papel dos Serviços
- Compreender como os Serviços funcionam
- Criar um Serviço simples
O Problema
Os Pods possuem IPs efêmeros que mudam:
Problemas:
- Os IPs mudam quando os Pods reiniciam
- Como encontrar os Pods backend?
- Como balancear a carga?
A Solução: Serviços
Um Service expõe um conjunto de Pods como um serviço de rede com um IP estável:
Vantagens:
- IP estável
- Balanceamento de carga automático
- Service discovery
- Abstração dos Pods backend
Como Funciona?
Selectors
O Service utiliza selectors para encontrar os Pods:
apiVersion: v1
kind: Service
metadata:
name: web-service
spec:
selector:
app: web
tier: frontend
ports:
- port: 80
targetPort: 8080
Declaração YAML
apiVersion: v1
kind: Service
metadata:
name: my-service
labels:
app: my-app
spec:
selector:
app: my-app
tier: frontend
ports:
- protocol: TCP
port: 80 # Porta do Service
targetPort: 8080 # Porta do container
type: ClusterIP # Tipo de Service
Comandos Úteis
# Criar um Service
kubectl apply -f service.yaml
# Listar os Services
kubectl get services
# Detalhes de um Service
kubectl describe service my-service
# Ver os Endpoints
kubectl get endpoints my-service
# Remover um Service
kubectl delete service my-service
Resumo
Neste capítulo, você aprendeu:
Problema: IPs efêmeros dos Pods
Solução: Services com IP estável
Selectors: Identificar os Pods backend
Load Balancing: Automático entre os Pods
Abstração: Os clientes não precisam conhecer os Pods
Próximos Passos
Agora que você entende os Serviços:
Capítulo 4.2: Tipos de Serviços
Lab 4.1: Serviços ClusterIP e NodePort
Capítulo criado em: Dezembro 2024