Pular para o conteúdo principal

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