HPA – Horizontal Pod Autoscaler no Kubernetes
Referências
Instalação do Metrics Server
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
Validação
Configuração recomendada
Adicione em args
:
Manifesto do HPA
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: monitor-app-hpa
namespace: default
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ .Values.deployment.name }} # Nome do deployment (Helm)
minReplicas: 2
maxReplicas: 5
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50 # Escala com uso acima de 50% da CPU
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 70 # Escala com uso acima de 70% da Memória
Gerar HPA via comando
kubectl autoscale deployment app-name --min=2 --max=10 --cpu-percent=70 --dry-run=client -o yaml > hpa.yaml
Monitoramento do HPA
Recurso obrigatório no Deployment
O HPA só funciona se o Deployment definir corretamente os recursos (resources:
).
Indentação errada = HPA não funciona (mostra "unknown")