6.3. 配置集群自动扩展
首先,部署集群自动扩展来管理 OpenShift Container Platform 集群中的资源自动扩展。
注意
由于集群自动扩展的范围仅限于整个集群,因此只能为集群创建一个集群自动扩展。
6.3.1. 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 min: 0 max: 4 scaleDown: 10 enabled: true 11 delayAfterAdd: 10m 12 delayAfterDelete: 5m 13 delayAfterFailure: 30s 14 unneededTime: 5m 15
- 1
- 指定 Pod 必须超过哪一优先级才能让机器自动扩展部署更多节点。输入一个 32 位整数值。
podPriorityThreshold
值将与您分配给每个 Pod 的PriorityClass
值进行比较。 - 2
- 指定要部署的最大节点数。这个值是集群中部署的机器总数,而不仅仅是自动扩展器控制的机器。确保这个值足够大,足以满足所有 control plane 和计算机器以及您在
MachineAutoscaler
资源中指定的副本总数。 - 3
- 指定在集群中部署的最小内核数。
- 4
- 指定集群中要部署的最大内核数。
- 5
- 指定集群中最小内存量(以 GiB 为单位)。
- 6
- 指定集群中的最大内存量(以 GiB 为单位)。
- 7
- (可选)指定要部署的 GPU 节点的类型。只有
nvidia.com/gpu
和amd.com/gpu
是有效的类型。 - 8
- 指定在集群中部署的最小 GPU 数。
- 9
- 指定集群中要部署的最大 GPU 数量。
- 10
- 11
- 指定集群自动扩展是否可以删除不必要的节点。
- 12
- (可选)指定在最近添加节点之后要等待多久才能删除节点。如果不指定值,则使用默认值
10m
。 - 13
- 指定在最近删除节点之后要等待多久才能删除节点。如果不指定值,则使用默认值
10s
。 - 14
- 指定在发生缩减失败之后要等待多久才能删除节点。如果不指定值,则使用默认值
3m
。 - 15
- 指定要经过多长时间之后,不需要的节点才符合删除条件。如果不指定值,则使用默认值
10m
。
注意
执行扩展操作时,集群自动扩展会保持在 ClusterAutoscaler
资源定义中设置的范围,如要部署的最小和最大内核数,或集群中的内存量。但是,集群自动扩展无法将集群中的当前值修正为在这些范围内。
最小和最大 CPU、内存和 GPU 值是通过计算集群中所有节点上的这些资源来确定,即使集群自动扩展无法管理该节点。例如,control plane 节点在集群的总内存中考虑,即使集群自动扩展不管理 control plane 节点。
6.3.2. 部署集群自动扩展
要部署集群自动扩展,请创建一个 ClusterAutoscaler
资源实例。
流程
-
为
ClusterAutoscaler
资源创建一个 YAML 文件,其中包含自定义的资源定义。 在集群中创建资源:
$ oc create -f <filename>.yaml 1
- 1
<filename>
是您自定义的资源文件的名称。