📈 Scale Pods Automatically
Fixed replicas waste resources. HorizontalPodAutoscaler scales pods based on CPU/memory. Scale up during load, down during low traffic.
📝 HPA Configuration
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: myapp-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: myapp
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 80
🎯 Check HPA Status
# Check HPA kubectl get hpa # Describe HPA kubectl describe hpa myapp-hpa # Watch HPA kubectl get hpa -w # HPA output: NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS myapp-hpa Deployment/myapp 45%/70% 2 10 2 # Simulate load kubectl run load-generator --image=busybox -- /bin/sh -c "while true; do wget -q -O- http://myapp; done" # Watch scale up kubectl get hpa -w # TARGETS: 45%/70% → 85%/70% → Scaling up! # REPLICAS: 2 → 4 → 6 → 8
💡 Best Practices
- Set resource requests for accurate scaling
- minReplicas: 2 (availability)
- maxReplicas: 10 (cost control)
- Target utilization: 70% (buffer)
- Monitor metrics for scaling decisions
“HPA scaled pods during traffic spike. No manual intervention. Saved costs during low traffic. Essential for production workloads.”
