veza/k8s/autoscaling/hpa-backend-api.yaml
senke 652d474cc1 [INFRA-012] infra: Set up auto-scaling
🎉 ALL 267 TASKS COMPLETED! 🎉
2025-12-25 21:43:00 +01:00

55 lines
1.2 KiB
YAML

# Horizontal Pod Autoscaler for Backend API
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: veza-backend-api-hpa
namespace: veza-production
labels:
app: veza-backend-api
component: autoscaling
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: veza-backend-api
minReplicas: 3
maxReplicas: 20
metrics:
# CPU-based scaling
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
# Memory-based scaling
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 80
behavior:
scaleUp:
stabilizationWindowSeconds: 60
policies:
# Scale up by 100% (double) or add 4 pods, whichever is more
- type: Percent
value: 100
periodSeconds: 15
- type: Pods
value: 4
periodSeconds: 15
selectPolicy: Max
scaleDown:
stabilizationWindowSeconds: 300
policies:
# Scale down by 10% or remove 1 pod, whichever is less
- type: Percent
value: 10
periodSeconds: 60
- type: Pods
value: 1
periodSeconds: 60
selectPolicy: Min