Capítulo 4.2 - Tipos de Services
Objetivos de Aprendizagem
Ao final deste capítulo, você será capaz de:
- Compreender os 4 tipos de Services
- Escolher o tipo certo conforme o caso de uso
- Configurar cada tipo de Service
- Entender as diferenças
Tipos de Services
O Kubernetes oferece 4 tipos de Services:
1. ClusterIP (Padrão)
Acesso interno ao cluster apenas.
apiVersion: v1
kind: Service
metadata:
name: clusterip-service
spec:
type: ClusterIP # Padrão
selector:
app: web
ports:
- port: 80
Caso de uso: Comunicação entre services dentro do cluster.
2. NodePort
Expõe o Service em uma porta de cada node (30000-32767).
apiVersion: v1
kind: Service
metadata:
name: nodeport-service
spec:
type: NodePort
selector:
app: web
ports:
- port: 80
targetPort: 8080
nodePort: 30080 # Opcional
Caso de uso: Acesso externo sem load balancer de cloud.
3. LoadBalancer
Expõe via um load balancer do provedor de cloud.
apiVersion: v1
kind: Service
metadata:
name: loadbalancer-service
spec:
type: LoadBalancer
selector:
app: web
ports:
- port: 80
Caso de uso: Aplicações públicas em produção.
4. ExternalName
Alias para um serviço externo.
apiVersion: v1
kind: Service
metadata:
name: external-service
spec:
type: ExternalName
externalName: database.example.com
Caso de uso: Referenciar serviços externos como se fossem internos.
Comparação
| Tipo | Acesso | IP | Porta | Caso de Uso |
|---|---|---|---|---|
| ClusterIP | Interno | Cluster IP | 80 | Services internos |
| NodePort | Externo | Node IP | 30000-32767 | Dev/Teste |
| LoadBalancer | Externo | Cloud IP | 80 | Produção |
| ExternalName | Interno | CNAME | - | Serviços externos |
Resumo
Neste capítulo, você aprendeu:
ClusterIP: Apenas acesso interno (padrão)
NodePort: Expõe em porta de cada node
LoadBalancer: Via load balancer de cloud
ExternalName: Alias para serviço externo
Escolha: Conforme o caso de uso (interno/externo, dev/prod)
Próximos Passos
Agora que você conhece os tipos:
Capítulo 4.3: Service Discovery
Lab 4.1: Services ClusterIP e NodePort
Capítulo criado em: Dezembro 2024