46 lines
1.2 KiB
YAML
46 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: 90 # Scale up if CPU Usage exceeds 90%
|
|
- 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: "500" # Scale up if requests per second > 500 per pod
|
|
behavior:
|
|
scaleDown:
|
|
stabilizationWindowSeconds: 60 # 60 sec before removing a pod
|
|
policies:
|
|
- type: Percent
|
|
value: 100
|
|
periodSeconds: 15
|
|
scaleUp:
|
|
stabilizationWindowSeconds: 60
|
|
policies:
|
|
- type: Pods
|
|
value: 1
|
|
periodSeconds: 60
|