Lab 4.4 - LoadBalancer e Integração Cloud
Objetivos do Lab
Ao final deste lab, você será capaz de:
- Compreender o tipo de Service LoadBalancer.
- Configurar um Service LoadBalancer.
- Entender a integração com load balancers em cloud.
- Testar o acesso externo via LoadBalancer.
Duração Estimada
30-45 minutos
Pré-requisitos
- kubectl instalado e configurado.
- Cluster Kubernetes local funcional (minikube ou kind).
- Conhecimentos sobre Services (Capítulos 4.1 e 4.2).
Parte 1: Entendendo o LoadBalancer
Um Service do tipo LoadBalancer expõe o Service para fora do cluster utilizando um load balancer fornecido pelo provedor de cloud (AWS ELB, Azure Load Balancer, GCP Load Balancer).
Em um cluster local (minikube/kind), o LoadBalancer se comporta como um NodePort, mas em produção na cloud, ele provisiona automaticamente um load balancer externo.
Parte 2: Criando um Service LoadBalancer
Etapa 2.1: Deploy de uma Aplicação
Crie um Deployment simples:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 3
selector:
matchLabels:
app: web-app
template:
metadata:
labels:
app: web-app
spec:
containers:
- name: nginx
image: nginx:1.20
ports:
- containerPort: 80
Aplique:
kubectl apply -f deployment.yaml
Etapa 2.2: Criar um Service LoadBalancer
Crie service-loadbalancer.yaml:
apiVersion: v1
kind: Service
metadata:
name: web-app-lb
spec:
type: LoadBalancer
selector:
app: web-app
ports:
- port: 80
targetPort: 80
protocol: TCP
Aplique:
kubectl apply -f service-loadbalancer.yaml
Parte 3: Verificação
Etapa 3.1: Verificar o Service
kubectl get svc web-app-lb
No minikube, você verá <pending> para o EXTERNAL-IP. Ative o túnel:
minikube tunnel
Em outro terminal, verifique novamente:
kubectl get svc web-app-lb
Você deverá ver um EXTERNAL-IP.
Etapa 3.2: Testar o Acesso
Teste o acesso:
curl http://<EXTERNAL-IP>
Parte 4: Integração Cloud (Conceitual)
Em um cluster cloud (AWS, Azure, GCP), o LoadBalancer é provisionado automaticamente:
- AWS: Elastic Load Balancer (ELB)
- Azure: Azure Load Balancer
- GCP: Google Cloud Load Balancer
O provedor cloud gerencia automaticamente a criação e configuração do load balancer.
Parte 5: Limpeza
kubectl delete svc web-app-lb
kubectl delete deployment web-app
Resumo do Lab
Neste lab, você criou um Service LoadBalancer e entendeu seu funcionamento. Em um cluster cloud, esse tipo de Service provisiona automaticamente um load balancer externo para expor sua aplicação.
Próximos Passos
Este módulo sobre Services e Networking está agora completo. Você pode avançar para o Módulo 5 sobre Configuração e Secrets.
Módulo 5: Configuração e Secrets
Lab criado em: Dezembro 2024