5.3. 配置 ClusterAutoscaler
首先,部署 ClusterAutoscaler 来管理 OpenShift Container Platform 集群中的资源自动扩展。
注意
由于 ClusterAutoscaler 作用到整个集群,因此只能为该集群创建一个 ClusterAutoscaler。
5.3.1. ClusterAutoscaler 资源定义
此 ClusterAutoscaler
资源定义显示 ClusterAutoscaler 的参数和示例值。
apiVersion: "autoscaling.openshift.io/v1" kind: "ClusterAutoscaler" metadata: name: "default" spec: podPriorityThreshold: -10 1 resourceLimits: maxNodesTotal: 24 2 cores: min: 8 3 max: 128 4 memory: min: 4 5 max: 256 6 gpus: - type: nvidia.com/gpu 7 min: 0 8 max: 16 9 - type: amd.com/gpu 10 min: 0 11 max: 4 12 scaleDown: 13 enabled: true 14 delayAfterAdd: 10m 15 delayAfterDelete: 5m 16 delayAfterFailure: 30s 17 unneededTime: 60s 18
- 1
- 指定 Pod 必须超过哪一优先级才能让 ClusterAutoscaler 部署更多节点。输入一个 32 位整数值。
podPriorityThreshold
值将与您分配给每个 Pod 的PriorityClass
值进行比较。 - 2
- 指定要部署的最大节点数。这个值是集群中部署的机器总数,而不仅仅是自动扩展器控制的机器。确保这个值足够大,足以满足所有 control plane 和计算机器以及您在
MachineAutoscaler
资源中指定的副本总数。 - 3
- 指定要部署的最小内核数。
- 4
- 指定要部署的最大内核数。
- 5
- 指定每个节点的最小内存量,以 GiB 为单位。
- 6
- 指定每个节点的最大内存量,以 GiB 为单位。
- 7 10
- (可选)指定要部署的 GPU 节点的类型。只有
nvidia.com/gpu
和amd.com/gpu
是有效的类型。 - 8 11
- 指定要部署的最小 GPU 数。
- 9 12
- 指定要部署的最大 GPU 数。
- 13
- 14
- 指定 ClusterAutoscaler 能否删除不必要的节点。
- 15
- (可选)指定在最近添加节点之后要等待多久才能删除节点。如果不指定值,则使用默认值
10m
。 - 16
- 指定在最近删除节点之后要等待多久才能删除节点。如果不指定值,则使用默认值
10s
。 - 17
- 指定在发生缩减失败之后要等待多久才能删除节点。如果不指定值,则使用默认值
3m
。 - 18
- 指定要经过多长时间之后,不需要的节点才符合删除条件。如果不指定值,则使用默认值
10m
。
5.3.2. 部署 ClusterAutoscaler
为了部署 ClusterAutoscaler,需要创建一个 ClusterAutoscaler
资源实例。
流程
-
为
ClusterAutoscaler
资源创建一个 YAML 文件,其中包含自定义的资源定义。 在集群中创建资源:
$ oc create -f <filename>.yaml 1
- 1
<filename>
是您自定义的资源文件的名称。
后续步骤
- 配置 ClusterAutoscaler 后,必须至少配置一个 MachineAutoscaler。