Ana içeriğe geç

Automatic Scaling of Apinizer Environments

This document explains how to configure horizontal auto-scaling (horizontal auto-scaling) operations for pods.

This horizontal scaling feature optimizes resource usage by automatically increasing and decreasing pod count according to application demands.

To use the scaling feature in your Kubernetes cluster, a metric-server must be installed. If it is not present, you can click here for installation.

Configuration

Create yaml file:

sudo vi hpa-autoscaling.yaml
ipucu

Edit NAMESPACE and DEPLOYMENT_NAME fields in yaml according to your application.

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: apinizer-hpa
namespace: <NAMESPACE>
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: <DEPLOYMENT_NAME>
minReplicas: 1
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 70
behavior:
scaleDown:
selectPolicy: Max
policies:
- type: Pods
value: 1
periodSeconds: 60
scaleUp:
stabilizationWindowSeconds: 60
policies:
- type: Pods
value: 1
periodSeconds: 60
selectPolicy: Max

Apply yaml file:

kubectl apply -f manager-hpa-autoscaling.yaml

Configuration Parameters

FieldDescription
scaleTargetRefThis field specifies which deployment scaling will work for. Example: manager.
minReplicasMinimum number of pods that should exist. Example: 2.
maxReplicasMaximum number of pods that can exist in the system. Example: 10.
averageUtilizationIn this field, you can enter a percentage value for cpu and memory usage. It will create pods when it exceeds the specified level.
scaleDownWhen it falls below the target usage level, it will reduce pods by the given value amount every 60 seconds from the pods it newly created.
scaleUpWhen it exceeds the target usage level, it is checked for 60 seconds, which is the stabilizationWindowSeconds value specified. If the condition is met, one pod is added to your cluster every 60 seconds.
ipucu

To disable scaleDown feature, change it to "selectPolicy: Disabled".