Pular para o conteúdo principal

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