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 加速器。

流程

  1. 在一个终端窗口中,如果您还没有以集群管理员登录到 OpenShift 集群,请登录 OpenShift CLI,如下例所示:

    $ oc login <openshift_cluster_url> -u <admin_username> -p <password>
    Copy to Clipboard Toggle word wrap
  2. 创建一个空的 Kueue 资源类别,如下所示:

    1. 创建名为 default_flavor.yaml 的文件,并使用以下内容填充它:

      空的 Kueue 资源类型

      apiVersion: kueue.x-k8s.io/v1beta1
      kind: ResourceFlavor
      metadata:
        name: default-flavor
      Copy to Clipboard Toggle word wrap

    2. 应用配置以创建 default-flavor 对象:

      $ oc apply -f default_flavor.yaml
      Copy to Clipboard Toggle word wrap
  3. 创建一个集群队列来管理空的 Kueue 资源类型,如下所示:

    1. 创建名为 cluster_queue.yaml 的文件,并使用以下内容填充它:

      集群队列示例

      apiVersion: kueue.x-k8s.io/v1beta1
      kind: ClusterQueue
      metadata:
        name: "cluster-queue"
      spec:
        namespaceSelector: {}  # match all.
        resourceGroups:
        - coveredResources: ["cpu", "memory", "nvidia.com/gpu"]
          flavors:
          - name: "default-flavor"
            resources:
            - name: "cpu"
              nominalQuota: 9
            - name: "memory"
              nominalQuota: 36Gi
            - name: "nvidia.com/gpu"
              nominalQuota: 5
      Copy to Clipboard Toggle word wrap

    2. 将示例配额值(9 CPU、36 GiB 内存和 5 NVIDIA GPU)替换为集群队列的适当值。如果使用 AMD GPU,在示例代码中将 nvidia.com/gpu 替换为 amd.com/gpu。只有所需资源达到这些配额限制时,集群队列才会启动分布式工作负载。

      您必须为每个用户可以请求的资源指定一个配额,即使请求的值为 0,更新 spec.resourceGroups 部分,如下所示:

      • coveredResources 列表中包含资源名称。
      • flavor.resources 部分中指定 资源名称nominalQuota,即使 nominalQuota 值为 0。
    3. 应用配置以创建 cluster-queue 对象:

      $ oc apply -f cluster_queue.yaml
      Copy to Clipboard Toggle word wrap
  4. 创建一个指向集群队列的本地队列,如下所示:

    1. 创建名为 local_queue.yaml 的文件,并使用以下内容填充它:

      本地队列示例

      apiVersion: kueue.x-k8s.io/v1beta1
      kind: LocalQueue
      metadata:
        namespace: test
        name: local-queue-test
        annotations:
          kueue.x-k8s.io/default-queue: 'true'
      spec:
        clusterQueue: cluster-queue
      Copy to Clipboard Toggle word wrap

      kueue.x-k8s.io/default-queue: 'true' 注解将此队列定义为默认队列。如果在数据科学管道或 Jupyter 笔记本或 Microsoft Visual Studio Code 文件的 ClusterConfiguration 部分中没有指定 local_queue 值,则分布式工作负载将提交到此队列。

    2. 更新 namespace 值,以指定与创建 Ray 集群的 ClusterConfiguration 部分中相同的命名空间。
    3. 可选:相应地更新 name 值。
    4. 应用配置以创建 local-queue 对象:

      $ oc apply -f local_queue.yaml
      Copy to Clipboard Toggle word wrap

      集群队列分配资源,以便在本地队列中运行分布式工作负载。

验证

检查项目中本地队列的状态,如下所示:

$ oc get -n <project-name> localqueues
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat