Lab 12.2 - Autoscaling Horizontal e Vertical
Objetivos do Lab
Ao final deste lab, você será capaz de:
- Configurar um Horizontal Pod Autoscaler (HPA).
- Compreender o funcionamento do HPA.
- Testar o autoscaling baseado em métricas.
- Compreender o Vertical Pod Autoscaler (VPA).
Duração Estimada
60-75 minutos
Pré-requisitos
- kubectl instalado e configurado.
- Cluster Kubernetes com metrics-server.
- Conhecimentos sobre Deployments.
Parte 1: Instalação do metrics-server
Etapa 1.1: Instalar o metrics-server
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
Verifique:
kubectl get deployment metrics-server -n kube-system
Parte 2: Criação de um HPA
Etapa 2.1: Criar um Deployment
Crie deployment-hpa.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: hpa-app
spec:
replicas: 2
selector:
matchLabels:
app: hpa-app
template:
metadata:
labels:
app: hpa-app
spec:
containers:
- name: app
image: nginx:1.20
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 256Mi
Aplique:
kubectl apply -f deployment-hpa.yaml
Etapa 2.2: Criar um HPA
Crie hpa.yaml:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: hpa-app
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: hpa-app
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
Aplique:
kubectl apply -f hpa.yaml
Parte 3: Teste do Autoscaling
Etapa 3.1: Gerar Carga
Crie um Pod para gerar carga:
kubectl run -i --tty load-generator --rm --image=busybox --restart=Never -- /bin/sh -c "while true; do wget -q -O- http://hpa-app-service; done"
Etapa 3.2: Observar o Autoscaling
Monitore o HPA:
kubectl get hpa hpa-app -w
Monitore os Pods:
kubectl get pods -l app=hpa-app -w
Parte 4: VPA (Introdução)
O VPA ajusta automaticamente os Requests e Limits. A instalação é mais complexa e requer um operador.
Resumo do Lab
Neste lab, você configurou o autoscaling horizontal com HPA. Você testou o autoscaling baseado na utilização de CPU.
Próximos Passos
O próximo lab mostrará como implementar GitOps com ArgoCD.
Lab 12.3: GitOps com ArgoCD
Lab criado em: Dezembro 2024