8.4. 强制使用本地队列


OpenShift 集群中高效的工作负载编排依赖于对资源和队列进行严格管理。集群管理员可以使用 Validating Admission Policy 功能强制使用 Local Queue 标识符来强制标记 RayCluster 资源。该标签可确保根据队列管理策略正确分类和路由工作负载,从而防止资源争用并提高操作效率。

注意

Validating Admission Policy 功能在 OpenShift v4.17 或更高版本中提供。

重要

Validating Admission Policy 功能目前在 Red Hat OpenShift AI 2.19 中作为技术预览功能提供。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

8.4.1. 强制所有项目的 local-queue 标签策略

当强制 local-queue 标签策略时,只有在 集群被配置为使用本地队列时,才会创建 Ray 集群,然后由 Kueue 管理 Ray 集群资源。默认情况下,为所有项目强制执行 local-queue 标签策略。

如果编辑了原始 ValidatingAdmissionPolicyBinding 资源,您可以使用以下任一方法撤销编辑并为所有项目强制实施策略:

  • 删除 kue-validating-admission-policy-binding 资源。资源使用默认值自动创建。不需要其他操作。
  • 按照此流程中所述编辑现有资源。

先决条件

流程

  1. 在 OpenShift 控制台中,打开 Administrator 视角,
  2. Project 列表中,选择 All Projects
  3. Home Search
  4. Resources 列表中,搜索 ValidatingAdmissionPolicyBinding
  5. kue-validating-admission-policy-binding 条目打开详情页面。
  6. YAML 选项卡显示绑定规格。
  7. 确保将以下字段设置为指定的值:

    为所有项目强制执行 local-queue 标签的示例

    kind: ValidatingAdmissionPolicyBinding
    apiVersion: admissionregistration.k8s.io/v1
    metadata:
      name: kueue-validating-admission-policy-binding
      uid: <Populated by the system. Read-only.>
      resourceVersion: <Populated by the system. Read-only.>
      generation: <Populated by the system. Read-only.>
      creationTimestamp: <Populated by the system. Read-only.>
      labels:
        app.kubernetes.io/component: controller
        app.kubernetes.io/name: kueue
      managedFields:
    spec:
      policyName: kueue-validating-admission-policy
      matchResources:
        namespaceSelector: {}
        objectSelector: {}
        matchPolicy: Equivalent
      validationActions:
        - Deny
    Copy to Clipboard Toggle word wrap

  8. 如果您进行任何更改,请单击 Save

验证

  1. 创建一个项目。
  2. 在新项目中完成以下步骤:

    1. 在配置本地队列前,请尝试创建 Ray 集群。

      Validating Admission Policy 拒绝请求,Ray 集群不会被创建,因为没有配置本地队列。

    2. 创建没有 default-queue 注解的本地队列。
    3. 尝试创建 Ray 集群,并在 local_queue 字段中指定 local-queue 名称。

      Validating Admission Policy 批准请求,并创建了 Ray 集群。

    4. 尝试在 local_queue 字段中指定值的情况下创建 Ray 集群。

      Validating Admission Policy rejects 请求,Ray 集群没有被创建,因为没有指定本地队列,且没有配置默认的本地队列。

    5. 编辑本地队列以添加 kueue.x-k8s.io/default-queue: "true" 注解,它将该队列配置为默认本地队列。
    6. 尝试在 local_queue 字段中指定值的情况下创建 Ray 集群。

      Validating Admission Policy 批准请求,即使未指定本地队列,也会创建 Ray 集群,因为使用了默认的本地队列。

8.4.2. 为所有项目禁用 local-queue 标签策略

默认情况下,为所有项目强制执行 local-queue 标签策略。如果禁用了 local-queue 标签策略,可以创建不使用本地队列的 Ray 集群。但是,此类 Ray 集群的资源不由 Kueue 管理。

您可以通过编辑 ValidatingAdmissionPolicyBinding 资源,为所有项目禁用 local-queue 标签策略,如下所述。

先决条件

流程

  1. 在 OpenShift 控制台中,打开 Administrator 视角,
  2. Project 列表中,选择 All Projects
  3. Home Search
  4. Resources 列表中,搜索 ValidatingAdmissionPolicyBinding
  5. kue-validating-admission-policy-binding 条目打开详情页面。
  6. YAML 选项卡显示绑定规格。
  7. 编辑 policyName 字段,将值更改为 disabled,如下例所示:

    为所有项目禁用 local-queue 标签的示例

    kind: ValidatingAdmissionPolicyBinding
    apiVersion: admissionregistration.k8s.io/v1
    metadata:
      name: kueue-validating-admission-policy-binding
      uid: <Populated by the system. Read-only.>
      resourceVersion: <Populated by the system. Read-only.>
      generation: <Populated by the system. Read-only.>
      creationTimestamp: <Populated by the system. Read-only.>
      labels:
        app.kubernetes.io/component: controller
        app.kubernetes.io/name: kueue
      managedFields:
    spec:
      policyName: disabled
      matchResources:
        namespaceSelector: {}
        objectSelector: {}
        matchPolicy: Equivalent
      validationActions:
        - Deny
    Copy to Clipboard Toggle word wrap

  8. 点击 Save

验证

  1. 创建一个项目。
  2. 在新项目中完成以下步骤:

    1. 在配置本地队列前,请尝试创建 Ray 集群。

      即使没有配置本地队列,也会创建 Ray 集群,因为无法强制执行 Validating Admission Policy。但是,Ray 集群资源不由 Kue 管理。

    2. 创建没有 default-queue 注解的本地队列。
    3. 尝试创建 Ray 集群,并在 local_queue 字段中指定 local-queue 名称。

      Ray 集群已创建,Ray 集群资源由 Kueue 管理。

    4. 尝试在 local_queue 字段中指定值的情况下创建 Ray 集群。

      Ray 集群已创建,但 Ray 集群资源不受 Kue 管理。

    5. 编辑本地队列以添加 kueue.x-k8s.io/default-queue: "true" 注解,它将该队列配置为默认本地队列。
    6. 尝试在 local_queue 字段中指定值的情况下创建 Ray 集群。

      Ray 集群已创建,Ray 集群资源由 Kueue 管理。

8.4.3. 仅为某些项目强制 local-queue 标签策略

当强制 local-queue 标签策略时,只有在 集群被配置为使用本地队列时,才会创建 Ray 集群,然后由 Kueue 管理 Ray 集群资源。禁用策略意味着可以创建不使用本地队列的 Ray 集群,但此类 Ray 集群的资源不受 Kueue 管理。

默认情况下,为所有项目强制执行 local-queue 标签策略。要只 为某些 项目实施策略,请按照以下步骤操作。

先决条件

流程

  1. 在 OpenShift 控制台中,打开 Administrator 视角,
  2. Project 列表中,选择 All Projects
  3. Home Search
  4. Resources 列表中,搜索 ValidatingAdmissionPolicyBinding
  5. kue-validating-admission-policy-binding 条目打开详情页面。
  6. YAML 选项卡显示绑定规格。
  7. 编辑 namespaceSelector 字段以删除 {} 值,并添加 matchLabelskueue-managed 值,如下例所示:

    仅为某些项目强制执行 local-queue 标签示例

    kind: ValidatingAdmissionPolicyBinding
    apiVersion: admissionregistration.k8s.io/v1
    metadata:
      name: kueue-validating-admission-policy-binding
      uid: <Populated by the system. Read-only.>
      resourceVersion: <Populated by the system. Read-only.>
      generation: <Populated by the system. Read-only.>
      creationTimestamp: <Populated by the system. Read-only.>
      labels:
        app.kubernetes.io/component: controller
        app.kubernetes.io/name: kueue
      managedFields:
    spec:
      policyName: kueue-validating-admission-policy
      matchResources:
        namespaceSelector:
          matchLabels:
          kueue-managed: "true"
        objectSelector: {}
        matchPolicy: Equivalent
      validationActions:
        - Deny
    Copy to Clipboard Toggle word wrap

  8. 点击 Save
  9. 运行以下命令,将 kue-managed 标签添加到您要为其强制执行此策略的每个项目:

    kue-managed 标签添加到 项目的命令示例

    oc label namespace <project-name> kueue-managed=true
    Copy to Clipboard Toggle word wrap

验证

  1. 创建两个项目:项目 A 和项目 B。
  2. kueue-managed 标签添加到 Project A。
  3. 在每个项目中,尝试创建 Ray 集群。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat