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.4. 使用 CLI 根据内存使用率创建 pod 横向自动扩展对象
您可以为现有 DeploymentConfig
或 ReplicationController
对象创建一个 pod 横向自动扩展 (HPA) ,用于自动扩展与该对象关联的 pod,以便维护您指定的平均内存使用率(可以是一个直接的值,也可以是请求的内存百分比)。
HPA 增加和减少最小和最大数量之间的副本数量,以维护所有 pod 的指定内存使用率。
对于内存使用率,您可以指定 pod 的最小和最大数量,以及 pod 的目标平均内存使用率。如果未指定最小值,则 OpenShift Container Platform 服务器会为 pod 赋予一个默认值。
先决条件
要使用 pod 横向自动扩展,您的集群管理员必须已经正确配置了集群指标。您可以使用 oc describe PodMetrics <pod-name>
命令来判断是否已配置了指标。如果配置了指标,输出类似于以下示例,其中 Usage
下列出了 Cpu
和 Memory
。
oc describe PodMetrics openshift-kube-scheduler-ip-10-0-129-223.compute.internal -n openshift-kube-scheduler
$ oc describe PodMetrics openshift-kube-scheduler-ip-10-0-129-223.compute.internal -n openshift-kube-scheduler
输出示例
流程
根据内存使用率创建 pod 横向自动扩展:
为以下之一创建一个 YAML 文件:
要扩展特定内存值,请为现有
ReplicationController
对象或复制控制器创建一个类似如下的HorizontalPodAutoscaler
对象:输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 使用
autoscaling/v2beta2
API。 - 2
- 指定此 pod 横向自动扩展对象的名称。
- 3
- 指定要缩放对象的 API 版本。
-
对于复制控制器,使用
v1
, -
对于
DeploymentConfig
对象,使用apps.openshift.io/v1
。
-
对于复制控制器,使用
- 4
- 指定要缩放的对象类型,可以是
ReplicationController
或DeploymentConfig
。 - 5
- 指定要缩放的对象名称。对象必须存在。
- 6
- 指定缩减时的最小副本数量。
- 7
- 指定扩展时的最大副本数量。
- 8
- 对于内存使用率,使用
metrics
参数。 - 9
- 为内存使用率指定
memory
。 - 10
- 将类型设置为
AverageValue
。 - 11
- 指定
averageValue
和一个特定的内存值。 - 12
- 可选:指定一个扩展策略来控制扩展或缩减率。
要缩放一个百分比,创建一个与以下类似的
HorizontalPodAutoscaler
对象:输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 使用
autoscaling/v2beta2
API。 - 2
- 指定此 pod 横向自动扩展对象的名称。
- 3
- 指定要缩放对象的 API 版本。
-
对于复制控制器,使用
v1
, -
对于
DeploymentConfig
对象,使用apps.openshift.io/v1
。
-
对于复制控制器,使用
- 4
- 指定要缩放的对象类型,可以是
ReplicationController
或DeploymentConfig
。 - 5
- 指定要缩放的对象名称。对象必须存在。
- 6
- 指定缩减时的最小副本数量。
- 7
- 指定扩展时的最大副本数量。
- 8
- 对于内存使用率,使用
metrics
参数。 - 9
- 为内存使用率指定
memory
。 - 10
- 设置
Utilization
。 - 11
- 为所有 pod 指定
averageUtilization
和一个目标平均内存利用率,以请求内存的百分比表示。目标 pod 必须配置内存请求。 - 12
- 可选:指定一个扩展策略来控制扩展或缩减率。
创建 Pod 横向自动扩展:
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
oc create -f hpa.yaml
$ oc create -f hpa.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
horizontalpodautoscaler.autoscaling/hpa-resource-metrics-memory created
horizontalpodautoscaler.autoscaling/hpa-resource-metrics-memory created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 pod 横向自动扩展是否已创建:
oc get hpa hpa-resource-metrics-memory
$ oc get hpa hpa-resource-metrics-memory
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE hpa-resource-metrics-memory ReplicationController/example 2441216/500Mi 1 10 1 20m
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE hpa-resource-metrics-memory ReplicationController/example 2441216/500Mi 1 10 1 20m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc describe hpa hpa-resource-metrics-memory
$ oc describe hpa hpa-resource-metrics-memory
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow