配置配额
作为管理员,您可以使用 Alauda Build of Kueue 配置配额,以优化用户工作负载的资源分配和系统吞吐量。您可以为计算资源(如 CPU、内存、pods 和 GPU)配置配额。
您可以通过完成以下步骤在 Alauda Build of Kueue 中配置配额:
- 配置集群队列。
- 配置资源风味。
- 配置本地队列。
- 用户随后可以将其工作负载提交到本地队列。
目录
1. 配置集群队列1.1. 前提条件1.2. 操作步骤2. 配置资源风味2.1. 前提条件2.2. 操作步骤3. 配置本地队列3.1. 前提条件3.2. 操作步骤4. 配置默认本地队列4.1. 前提条件4.2. 操作步骤4.3. 验证1. 配置集群队列
集群队列是一个集群范围的资源,由 ClusterQueue 对象表示,用于管理 GPU、CPU、内存和 pods 等资源池。集群队列可用于定义使用限制、资源风味配额、消费顺序和公平共享规则。
注意:在配置了 ResourceFlavor 对象之前,集群队列不可用。
1.1. 前提条件
- Alauda Container Platform Web CLI 能够与您的集群通信。
- 您拥有集群管理员权限或
kueue-batch-admin-role角色。
1.2. 操作步骤
-
创建一个
ClusterQueue对象的 YAML 文件:namespaceSelector:定义哪些命名空间可以使用此集群队列管理的资源。示例中空的namespaceSelector表示所有命名空间均可使用这些资源。coveredResources(default-flavor):定义集群队列管理的资源类型。此示例中的ClusterQueue对象管理 CPU、内存、pod 和 GPU 资源。flavors.name(default-flavor):定义应用于所列资源类型的资源风味。此示例中,default-flavor资源风味应用于 CPU、内存、pod 和 GPU 资源。resources(default-flavor):定义准入作业的资源要求。此示例集群队列仅在满足以下条件时准入作业:- CPU 请求总和小于或等于 9。
- 内存请求总和小于或等于 36Gi。
- pod 总数小于或等于 5。
- GPU 任务总和小于或等于 20(如果使用 Alauda Build of Hami,参见注释 5)。
- 总 GPU 核心请求数小于或等于 300(如果使用 Alauda Build of Hami)。
- 总 GPU 内存请求数小于或等于 20480。
- GPU 请求总和小于或等于 100(如果使用 Alauda Build of NVIDIA GPU Device Plugin,参见注释 7)。
coveredResources(t4-flavor):定义 Alauda Build of Hami 的资源要求。如果不使用 Alauda Build of Hami,请删除该部分。flavors.name(t4-flavor):定义应用于所列资源类型的资源风味。此示例中,t4-flavor资源风味应用于 Nvidia T4 GPU 卡。如果不想为特定卡类型配置配额,可以填写default-flavor。coveredResources(a30-flavor):定义 Alauda Build of NVIDIA GPU Device Plugin 的资源要求。如果不使用该插件,请删除该部分。flavors.name(a30-flavor):定义应用于所列资源类型的资源风味。此示例中,a30-flavor资源风味应用于 Nvidia A30 GPU 卡。如果不想为特定卡类型配置配额,可以填写default-flavor。
-
运行以下命令应用
ClusterQueue对象:
2. 配置资源风味
配置完 ClusterQueue 对象后,您可以配置 ResourceFlavor 对象。
集群中的资源通常不是同质的。如果您的集群资源是同质的,可以使用空的 ResourceFlavor,而无需为自定义资源风味添加标签。
您可以使用自定义的 ResourceFlavor 对象来表示通过标签、污点和容忍度与集群节点关联的不同资源变体。然后,您可以将工作负载与特定节点类型关联,以实现细粒度的资源管理。
2.1. 前提条件
- Alauda Container Platform Web CLI 能够与您的集群通信。
- 您拥有集群管理员权限或
kueue-batch-admin-role角色。
2.2. 操作步骤
-
创建一个
ResourceFlavor对象的 YAML 文件:空的 ResourceFlavor 对象示例
Nvidia Tesla T4 GPU 的自定义
ResourceFlavor对象示例Nvidia A30 GPU 的自定义
ResourceFlavor对象示例 -
运行以下命令应用
ResourceFlavor对象:
3. 配置本地队列
本地队列是一个命名空间范围的对象,由 LocalQueue 对象表示,用于分组属于单个命名空间的紧密相关的工作负载。
作为管理员,您可以配置 LocalQueue 对象指向一个集群队列。这会将集群队列中的资源分配给 LocalQueue 对象中指定命名空间的工作负载。
3.1. 前提条件
- Alauda Container Platform Web CLI 能够与您的集群通信。
- 您拥有集群管理员权限或
kueue-batch-admin-role角色。 - 您已创建
ClusterQueue对象。
3.2. 操作步骤
-
创建一个
LocalQueue对象的 YAML 文件:基础 LocalQueue 对象示例
-
运行以下命令应用
LocalQueue对象:
4. 配置默认本地队列
作为集群管理员,您可以通过管理选定命名空间中的所有作业来提升集群中的配额执行效率,而无需显式为每个作业打标签。您可以通过创建默认本地队列实现此目的。
默认本地队列作为新创建且未带有 kueue.x-k8s.io/queue-name 标签的作业的本地队列。创建默认本地队列后,命名空间中新建且未带有 kueue.x-k8s.io/queue-name 标签的作业会自动更新为带有 kueue.x-k8s.io/queue-name: default 标签。
4.1. 前提条件
- Alauda Container Platform Web CLI 能够与您的集群通信。
- 您拥有集群管理员权限或
kueue-batch-admin-role角色。 - 您已创建 ClusterQueue 对象。
4.2. 操作步骤
-
创建名为 default 的 LocalQueue 对象的 YAML 文件:
默认 LocalQueue 对象示例
-
运行以下命令应用
LocalQueue对象:
4.3. 验证
- 在与默认本地队列相同的命名空间中创建一个作业。
- 观察该作业是否更新为带有
kueue.x-k8s.io/queue-name: default标签。