42 lines
1.2 KiB
YAML
42 lines
1.2 KiB
YAML
apiVersion: autoscaling/v2
|
|
kind: HorizontalPodAutoscaler
|
|
metadata:
|
|
name: severed-blog-hpa
|
|
namespace: severed-apps
|
|
spec:
|
|
scaleTargetRef:
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
name: severed-blog
|
|
minReplicas: 2 # Never drop below 2 for HA
|
|
maxReplicas: 6 # Maximum number of pods to prevent cluster exhaustion
|
|
metrics:
|
|
- type: Resource
|
|
resource:
|
|
name: cpu
|
|
target:
|
|
type: Utilization
|
|
averageUtilization: 70 # Scale up if CPU Usage exceeds 70%
|
|
- type: Resource
|
|
resource:
|
|
name: memory
|
|
target:
|
|
type: Utilization
|
|
averageUtilization: 80 # Scale up if RAM Usage exceeds 80%
|
|
- type: Pods
|
|
pods:
|
|
metric:
|
|
name: nginx_http_requests_total
|
|
target:
|
|
type: AverageValue
|
|
averageValue: 10 # Scale up if requests > 10 per second per pod
|
|
behavior:
|
|
scaleDown:
|
|
stabilizationWindowSeconds: 300 # Wait 5 minutes before removing a pod
|
|
policies:
|
|
- type: Percent
|
|
value: 100
|
|
periodSeconds: 15
|
|
scaleUp:
|
|
stabilizationWindowSeconds: 0 # Scale up immediately when busy
|