This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.2.4.3. 使用 CLI 根据 CPU 使用率创建 pod 横向自动扩展
您可以为现有的 Deployment
、DeploymentConfig
、ReplicaSet、ReplicaSet 或
StatefulSet
对象创建一个 pod 横向自动扩展(HPA),用于自动扩展与该对象关联的 pod,以维护您指定的 CPU 用量。
HPA 会在最小和最大数量之间增加和减少副本数,以保持所有 pod 的指定 CPU 使用率。
为 CPU 使用率自动扩展时,您可以使用 oc autoscale
命令,并指定要在任意给定时间运行的 pod 的最小和最大数量,以及 pod 的目标平均 CPU 使用率。如果未指定最小值,则 OpenShift Container Platform 服务器会为 pod 赋予一个默认值。要自动缩放特定 CPU 值,创建一个带有目标 CPU 和 pod 限制的 HorizontalPodAutoscaler
对象。
先决条件
要使用 pod 横向自动扩展,您的集群管理员必须已经正确配置了集群指标。您可以使用 oc describe PodMetrics <pod-name>
命令来判断是否已配置了指标。如果配置了指标,输出类似于以下示例,其中 Usage
下列出了 Cpu
和 Memory
。
oc describe PodMetrics openshift-kube-scheduler-ip-10-0-135-131.ec2.internal
$ oc describe PodMetrics openshift-kube-scheduler-ip-10-0-135-131.ec2.internal
输出示例
流程
为 CPU 使用率创建 pod 横向自动扩展
执行以下之一:
要根据 CPU 使用率百分比来缩放,请为现有对象创建一个
HorizontalPodAutoscaler
对象:oc autoscale <object_type>/<name> \ --min <number> \ --max <number> \ --cpu-percent=<percent>
$ oc autoscale <object_type>/<name> \
1 --min <number> \
2 --max <number> \
3 --cpu-percent=<percent>
4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,以下命令显示
image-registry
DeploymentConfig
对象的自动扩展。初始部署需要 3 个 pod。HPA 对象将最小值增加到 5,如果 pod 的 CPU 用量达到 75%,会将 pod 数最高增加到 7:oc autoscale dc/image-registry --min=5 --max=7 --cpu-percent=75
$ oc autoscale dc/image-registry --min=5 --max=7 --cpu-percent=75
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要扩展特定 CPU 值,请为现有对象创建一个类似如下的 YAML 文件:
创建一个类似以下示例的 YAML 文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 使用
autoscaling/v2beta2
API。 - 2
- 指定此 pod 横向自动扩展对象的名称。
- 3
- 指定要缩放对象的 API 版本。
-
对于
ReplicationController
,使用v1
。 -
对于
DeploymentConfig
,使用apps.openshift.io/v1
。 -
对于
Deployment
,ReplicaSet
(Statefulset
对象)使用apps/v1
。
-
对于
- 4
- 指定对象的类型。对象必须是
Deployment
、DeploymentConfig
/dc
、ReplicaSet
/rs
、ReplicationController
/rc
或StatefulSet
。 - 5
- 指定要缩放的对象名称。对象必须存在。
- 6
- 指定缩减时的最小副本数量。
- 7
- 指定扩展时的最大副本数量。
- 8
- 对于内存使用率,使用
metrics
参数。 - 9
- 为 CPU 使用率指定
cpu
。 - 10
- 设置为
AverageValue
。 - 11
- 使用目标 CPU 值设置为
averageValue
。
创建 Pod 横向自动扩展:
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证 pod 横向自动扩展是否已创建:
oc get hpa cpu-autoscale
$ oc get hpa cpu-autoscale
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE cpu-autoscale ReplicationController/example 173m/500m 1 10 1 20m
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE cpu-autoscale ReplicationController/example 173m/500m 1 10 1 20m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow