Less than 1 minute
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: nginx-hpa-test
spec:
# 绑定需要自动扩缩的资源对象,如deployment/statefulset等
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: nginx-hpa-test
# 设置扩缩时的最大最小副本数
minReplicas: 1
maxReplicas: 5
# 设置扩缩参考的指标(可设置多个指标)
# 这里的指标表示期望的Pod总负载的平均CPU利用率为50%左右,若超出则考虑增加Pod数量,若不足则考虑减少Pod数量
metrics:
- type: Resource
resource:
name: cpu # 或 memory(注意需要为管理的Deployment对象下的Pod设置requests.cpu或memory限制,否则hpa会报错)
target:
type: Utilization # 另一个可用值是AverageValue,表示一个具体值
averageUtilization: 50
# averageValue: 200m # 当 target.type=AverageValue时 需要使用此字段,值形式为 带m后缀或单纯的数字,前者是千分单位,比如1m=1000。当资源类型为memory时,这里一般显示纯数字,单位是byte
# - type: ContainerResource # K8s 1.27 版本支持对容器级别对象的监控策略
# containerResource:
# name: cpu
# container: application
# target:
# type: Utilization
# averageUtilization: 60