8.3. 为分布式工作负载配置配额管理
为集群中的分布式工作负载配置配额,以便您可以在多个数据科学项目之间共享资源。
先决条件
-
已使用
cluster-admin
角色登录 OpenShift。 - 您已下载并安装 OpenShift 命令行界面 (CLI)。请参阅安装 OpenShift CLI。
- 您已安装了所需的分布式工作负载组件,如 安装分布式工作负载组件 中所述(用于断开连接的环境,请参阅安装分布式工作负载组件)。
- 您已创建了包含工作台的数据科学项目,工作台正在运行包含 CodeFlare SDK 的默认笔记本镜像,如 Standard Data Science 笔记本。有关如何创建项目的详情,请参考 创建数据科学项目。
- 您有足够的资源。除了基本的 OpenShift AI 资源外,还需要 1.6 vCPU 和 2 GiB 内存来部署分布式工作负载基础架构。
- 资源在集群中物理可用。有关 Kueue 资源的更多信息,请参阅 Kueue 资源概述。
如果要使用图形处理单元(GPU),在 OpenShift AI 中启用了 GPU 支持。如果使用 NVIDIA GPU,请参阅启用 NVIDIA GPU。如果使用 AMD GPU,请参阅 AMD GPU 集成。
注意在 OpenShift AI 2.19 中,红帽只支持用于分布式工作负载的 NVIDIA GPU 加速器和 AMD GPU 加速器。
流程
在一个终端窗口中,如果您还没有以集群管理员登录到 OpenShift 集群,请登录 OpenShift CLI,如下例所示:
oc login <openshift_cluster_url> -u <admin_username> -p <password>
$ oc login <openshift_cluster_url> -u <admin_username> -p <password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个空的 Kueue 资源类别,如下所示:
创建名为
default_flavor.yaml
的文件,并使用以下内容填充它:空的 Kueue 资源类型
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 应用配置以创建
default-flavor
对象:oc apply -f default_flavor.yaml
$ oc apply -f default_flavor.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建一个集群队列来管理空的 Kueue 资源类型,如下所示:
创建名为
cluster_queue.yaml
的文件,并使用以下内容填充它:集群队列示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将示例配额值(9 CPU、36 GiB 内存和 5 NVIDIA GPU)替换为集群队列的适当值。如果使用 AMD GPU,在示例代码中将
nvidia.com/gpu
替换为amd.com/gpu
。只有所需资源达到这些配额限制时,集群队列才会启动分布式工作负载。您必须为每个用户可以请求的资源指定一个配额,即使请求的值为 0,更新
spec.resourceGroups
部分,如下所示:-
在
coveredResources
列表中包含资源名称。 -
在
flavor.resources
部分中指定资源名称
和nominalQuota
,即使nominalQuota
值为 0。
-
在
应用配置以创建
cluster-queue
对象:oc apply -f cluster_queue.yaml
$ oc apply -f cluster_queue.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建一个指向集群队列的本地队列,如下所示:
创建名为
local_queue.yaml
的文件,并使用以下内容填充它:本地队列示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kueue.x-k8s.io/default-queue: 'true'
注解将此队列定义为默认队列。如果在数据科学管道或 Jupyter 笔记本或 Microsoft Visual Studio Code 文件的ClusterConfiguration
部分中没有指定local_queue
值,则分布式工作负载将提交到此队列。-
更新
namespace
值,以指定与创建 Ray 集群的ClusterConfiguration
部分中相同的命名空间。 -
可选:相应地更新
name
值。 应用配置以创建 local-queue 对象:
oc apply -f local_queue.yaml
$ oc apply -f local_queue.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 集群队列分配资源,以便在本地队列中运行分布式工作负载。
验证
检查项目中本地队列的状态,如下所示:
oc get -n <project-name> localqueues
$ oc get -n <project-name> localqueues