Pular para o conteúdo principal

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