Cum să configurezi auto-scaling cu HorizontalPodAutoscaler în Kubernetes
DodaTech
Updated 2025-01-15
2 min read
In this tutorial, you'll learn about Cum să configurezi auto. We cover key concepts, practical examples, and best practices.
Problema
Aplicația ta primește trafic variabil și fie ai resurse nefolosite (costuri inutile), fie Pod-urile sunt suprasolicitate și aplicația devine lentă sau indisponibilă.
Soluția Pas cu Pas
1. Creează un Deployment cu resource requests
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 2
selector:
matchLabels:
app: web-app
template:
metadata:
labels:
app: web-app
spec:
containers:
- name: app
image: nginx
resources:
requests:
cpu: 200m
memory: 256Mi
limits:
cpu: 500m
memory: 512Mi
kubectl apply -f deployment.yaml
2. Creează un HPA pe bază de CPU
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: web-app-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: web-app
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 60
kubectl apply -f hpa.yaml
Output:
horizontalpodautoscaler.autoscaling/web-app-hpa created
3. Verifică starea HPA
kubectl get hpa -w
Output:
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS
web-app-hpa Deployment/web-app 30%/60% 2 10 2
4. HPA pe bază de memorie
spec:
metrics:
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 70
5. HPA cu metrici custom
spec:
metrics:
- type: Pods
pods:
metric:
name: http_requests_per_second
target:
type: AverageValue
averageValue: 100
6. Simulează încărcare pentru a testa
kubectl run -it --rm load-generator --image=busybox -- sh -c "while true; do wget -q -O- http://web-app; done"
Urmărește scalarea:
kubectl get hpa -w
Prevenție
- Setează întotdeauna
resource.requestspe containere — HPA nu funcționează fără ele. - Configurează valori realiste pentru
minReplicasșimaxReplicas. - Folosește
behaviorpentru a controla viteza de scalare (stabilizare, ramp-up, ramp-down). - Monitorizează HPA cu
kubectl describe hpapentru evenimente.
Greșeli Comune
- Fără resource requests pe containere — HPA nu poate calcula utilizarea.
- Metrici server lipsă — Metrics Server trebuie instalat în cluster.
- Target prea mic — HPA scalează prea agresiv; target prea mare — nu scalează la timp.
- Instabilitate la scalare — Fără perioadă de stabilizare, HPA fluctuează.
- MaxReplici prea mare — Poate duce la costuri neașteptate în cloud.
Exercițiu
Creează un Deployment cu CPU request de 100m, un HPA cu target 50% CPU, generează trafic cu un load generator și observă scalarea automată de la 2 la maximum 5 replici.
FAQ
Construit de dezvoltatorii Doda Browser, DodaZIP și Durga Antivirus Pro. Uneltele DodaTech se integrează seamless cu Kubernetes pentru productivitate și securitate sporite.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro