kubectl autoscale
# kubectl autoscale
为指定控制器创建一个 HPA(水平自动扩缩)。
注意
水平自动扩缩(HPA)需要搭配 Pod 的资源限制spec.containers.resources.limits
一起使用,否则 HPA 无法生效。
# 可创建的资源(笔者已学或已知)
# 控制器deployment
为控制器 Deployment 创建一个水平自动扩缩。
# 基本格式
kubectl autoscale deployment <控制器名称> --min=<最小副本数> --max=<最大副本数> --cpu-percent=<CPU负载度量值>
# 或
kubectl autoscale deploy <控制器名称> --min=<最小副本数> --max=<最大副本数> --cpu-percent=<CPU负载度量值>
# 示例(最小 2 个副本数,最大 7 个副本数,CPU 阈值为 70%)
kubectl autoscale deployment <控制器名称> --min=2 --max=7 --cpu-percent=70
1
2
3
4
5
6
7
2
3
4
5
6
7
# 控制器ReplicaSet
为控制器 ReplicaSet 创建一个水平自动扩缩。
kubectl autoscale rs <控制器名称> --min=<最小副本数> --max=<最大副本数> --cpu-percent=<CPU负载度量值>
1
# 命令参数选项
# --name
手动指定 HPA 的名称。
HPA 一般不需要指定名称,创建时会自动使用与 控制器 相同的名称。例如:
# 示例(未指定 --name 选项,则 HPA 的名称也叫做 d1-test)
kubectl autoscale deployment d1-test --min=2 --max=7 --cpu-percent=70
1
2
2
添加--name
选项后:
# 示例(手动设置 HPA 的名称为 hpa-1)
kubectl autoscale deployment d1-test --name=hpa-1 --min=2 --max=7 --cpu-percent=70
1
2
2
# --min
指定 HPA 缩减时的副本数下限(最小副本数)。
# --max
指定 HPA 扩展时的副本数上限(最大副本数)。
# --cpu-percent
指定 CPU 度量值(默认单位为:百分比)。
- 当 Pod 的平均 CPU 负载超过这个值时,将会自动扩展副本数。
- 当 (
Pod 总数量-1
)个 Pod 的平均 CPU 负载低于这个值时,将会自动缩减副本数。
编辑 (opens new window)