2.6. 配置配额
作为管理员,您可以使用红帽构建的 Kueue 来配置配额来优化用户工作负载的资源分配和系统吞吐量。您可以为 CPU、内存、pod 和 GPU 等计算资源配置配额。
您可以通过完成以下步骤,在红帽构建的 Kueue 中配置配额:
- 配置集群队列。
- 配置资源类别。
- 配置本地队列。
然后,用户可以将其工作负载提交到本地队列。
2.6.1. 配置集群队列 复制链接链接已复制到粘贴板!
集群队列是一个集群范围的资源,由 ClusterQueue
对象表示,用于管理 CPU、内存和 pod 等资源池。集群队列可用于定义用量限值、资源类别配额、消耗顺序和公平共享规则。
在同时配置了 ResourceFlavor
对象前,集群队列未就绪。
先决条件
- 在集群中安装了 Red Hat build of Kueue Operator。
-
有集群管理员权限或
kue-batch-admin-role
角色。 -
已安装 OpenShift CLI(
oc
)。
流程
将
ClusterQueue
对象创建为 YAML 文件:使用单个资源类别的基本
ClusterQueue
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 定义哪些命名空间可以使用由此集群队列管理的资源。示例所示的空
namespaceSelector
表示所有命名空间都可以使用这些资源。 - 2
- 定义由集群队列管理的资源类型。这个示例
ClusterQueue
对象管理 CPU、内存、pod 和 GPU 资源。 - 3
- 定义应用到列出的资源类型的资源类别。在本例中,
default-flavor
资源类别应用于 CPU、内存、pod 和 GPU 资源。 - 4
- 定义接受作业的资源要求。这个示例集群队列仅在满足以下条件时接受作业:
- CPU 请求总和小于或等于 9。
- 内存请求总和小于或等于 36Gi。
- pod 的总数小于或等于 5。
- GPU 请求总和小于或等于 100。
运行以下命令来应用
ClusterQueue
对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.2. 配置资源类别 复制链接链接已复制到粘贴板!
配置 ClusterQueue
对象后,您可以配置 ResourceFlavor
对象。
集群中的资源通常不是同构的。如果集群中的资源是同构的,您可以使用空 ResourceFlavor
,而不是向自定义资源类型添加标签。
您可以使用自定义资源 Flavor
对象来代表通过标签、污点和容限与集群节点关联的不同资源变化。然后,您可以将工作负载与特定的节点类型关联,以启用精细的资源管理。
先决条件
- 在集群中安装了 Red Hat build of Kueue Operator。
-
有集群管理员权限或
kue-batch-admin-role
角色。 -
已安装 OpenShift CLI(
oc
)。
流程
将
ResourceFlavor
对象创建为 YAML 文件:空
ResourceFlavor
对象示例apiVersion: kueue.x-k8s.io/v1beta1 kind: ResourceFlavor metadata: name: default-flavor
apiVersion: kueue.x-k8s.io/v1beta1 kind: ResourceFlavor metadata: name: default-flavor
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 自定义资源
Flavor
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用
ResourceFlavor
对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.3. 配置本地队列 复制链接链接已复制到粘贴板!
本地队列是一个命名空间对象,由 LocalQueue
对象表示,该对象对属于单个命名空间的紧密相关的工作负载进行分组。
作为管理员,您可以配置 LocalQueue
对象以指向集群队列。这会将资源从集群队列分配给 LocalQueue
对象中指定的命名空间中的工作负载。
先决条件
- 在集群中安装了 Red Hat build of Kueue Operator。
-
有集群管理员权限或
kue-batch-admin-role
角色。 -
已安装 OpenShift CLI(
oc
)。 -
您已创建了
ClusterQueue
对象。
流程
创建一个
LocalQueue
对象作为 YAML 文件:基本
LocalQueue
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用
LocalQueue
对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.4. 配置默认本地队列 复制链接链接已复制到粘贴板!
作为集群管理员,您可以通过管理所选命名空间中的所有作业来提高集群中的配额强制,而无需显式标记每个作业。您可以通过创建默认的本地队列来完成此操作。
默认本地队列充当新创建的作业的本地队列,它们没有 kue.x-k8s.io/queue-name
标签。创建一个默认本地队列后,在该命名空间中创建的任何没有 kueue.x-k8s.io/queue-name
标签的新作业都会自动更新为带有 kue.x-k8s.io/queue-name: default
标签。
当您创建默认本地队列时,命名空间中的预先存在的作业不会受到影响。如果在创建默认本地队列前命名空间中已存在作业,则必须明确将这些作业分配给队列。
先决条件
- 您已在集群中安装了 Red Hat build of Kueue 版本 1.1。
-
有集群管理员权限或
kue-batch-admin-role
角色。 -
已安装 OpenShift CLI(
oc
)。 -
您已创建了
ClusterQueue
对象。
流程
创建名为
default
的LocalQueue
对象,作为 YAML 文件:默认
LocalQueue
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用
LocalQueue
对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
- 在与默认本地队列相同的命名空间中创建作业。
-
使用
kueue.x-k8s.io/queue-name: default
标签观察作业更新。