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
资源。资源使用默认值自动创建。不需要其他操作。 - 按照此流程中所述编辑现有资源。
先决条件
-
已使用
cluster-admin
角色登录 OpenShift。 - 您已安装了所需的分布式工作负载组件,如 安装分布式工作负载组件 中所述(用于断开连接的环境,请参阅安装分布式工作负载组件)。
流程
- 在 OpenShift 控制台中,打开 Administrator 视角,
- 从 Project 列表中,选择 All Projects。
-
点 Home
Search。 - 在 Resources 列表中,搜索 ValidatingAdmissionPolicyBinding。
-
点
kue-validating-admission-policy-binding
条目打开详情页面。 - 点 YAML 选项卡显示绑定规格。
确保将以下字段设置为指定的值:
为所有项目强制执行 local-queue 标签的示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 如果您进行任何更改,请单击 Save。
验证
- 创建一个项目。
在新项目中完成以下步骤:
在配置本地队列前,请尝试创建 Ray 集群。
Validating Admission Policy 拒绝请求,Ray 集群不会被创建,因为没有配置本地队列。
-
创建没有
default-queue
注解的本地队列。 尝试创建 Ray 集群,并在
local_queue
字段中指定 local-queue 名称。Validating Admission Policy 批准请求,并创建了 Ray 集群。
尝试在
local_queue
字段中指定值的情况下创建 Ray 集群。Validating Admission Policy rejects 请求,Ray 集群没有被创建,因为没有指定本地队列,且没有配置默认的本地队列。
-
编辑本地队列以添加
kueue.x-k8s.io/default-queue: "true"
注解,它将该队列配置为默认本地队列。 尝试在
local_queue
字段中指定值的情况下创建 Ray 集群。Validating Admission Policy 批准请求,即使未指定本地队列,也会创建 Ray 集群,因为使用了默认的本地队列。
8.4.2. 为所有项目禁用 local-queue 标签策略 复制链接链接已复制到粘贴板!
默认情况下,为所有项目强制执行 local-queue 标签策略。如果禁用了 local-queue 标签策略,可以创建不使用本地队列的 Ray 集群。但是,此类 Ray 集群的资源不由 Kueue 管理。
您可以通过编辑 ValidatingAdmissionPolicyBinding
资源,为所有项目禁用 local-queue 标签策略,如下所述。
先决条件
-
已使用
cluster-admin
角色登录 OpenShift。 - 您已安装了所需的分布式工作负载组件,如 安装分布式工作负载组件 中所述(用于断开连接的环境,请参阅安装分布式工作负载组件)。
流程
- 在 OpenShift 控制台中,打开 Administrator 视角,
- 从 Project 列表中,选择 All Projects。
-
点 Home
Search。 - 在 Resources 列表中,搜索 ValidatingAdmissionPolicyBinding。
-
点
kue-validating-admission-policy-binding
条目打开详情页面。 - 点 YAML 选项卡显示绑定规格。
编辑
policyName
字段,将值更改为disabled
,如下例所示:为所有项目禁用 local-queue 标签的示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点击 Save。
验证
- 创建一个项目。
在新项目中完成以下步骤:
在配置本地队列前,请尝试创建 Ray 集群。
即使没有配置本地队列,也会创建 Ray 集群,因为无法强制执行 Validating Admission Policy。但是,Ray 集群资源不由 Kue 管理。
-
创建没有
default-queue
注解的本地队列。 尝试创建 Ray 集群,并在
local_queue
字段中指定 local-queue 名称。Ray 集群已创建,Ray 集群资源由 Kueue 管理。
尝试在
local_queue
字段中指定值的情况下创建 Ray 集群。Ray 集群已创建,但 Ray 集群资源不受 Kue 管理。
-
编辑本地队列以添加
kueue.x-k8s.io/default-queue: "true"
注解,它将该队列配置为默认本地队列。 尝试在
local_queue
字段中指定值的情况下创建 Ray 集群。Ray 集群已创建,Ray 集群资源由 Kueue 管理。
8.4.3. 仅为某些项目强制 local-queue 标签策略 复制链接链接已复制到粘贴板!
当强制 local-queue 标签策略时,只有在 集群被配置为使用本地队列时,才会创建 Ray 集群,然后由 Kueue 管理 Ray 集群资源。禁用策略意味着可以创建不使用本地队列的 Ray 集群,但此类 Ray 集群的资源不受 Kueue 管理。
默认情况下,为所有项目强制执行 local-queue 标签策略。要只 为某些 项目实施策略,请按照以下步骤操作。
先决条件
-
已使用
cluster-admin
角色登录 OpenShift。 - 您已安装了所需的分布式工作负载组件,如 安装分布式工作负载组件 中所述(用于断开连接的环境,请参阅安装分布式工作负载组件)。
流程
- 在 OpenShift 控制台中,打开 Administrator 视角,
- 从 Project 列表中,选择 All Projects。
-
点 Home
Search。 - 在 Resources 列表中,搜索 ValidatingAdmissionPolicyBinding。
-
点
kue-validating-admission-policy-binding
条目打开详情页面。 - 点 YAML 选项卡显示绑定规格。
编辑
namespaceSelector
字段以删除{}
值,并添加matchLabels
和kueue-managed
值,如下例所示:仅为某些项目强制执行 local-queue 标签示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点击 Save。
运行以下命令,将
kue-managed
标签添加到您要为其强制执行此策略的每个项目:将
kue-managed 标签添加到
项目的命令示例oc label namespace <project-name> kueue-managed=true
oc label namespace <project-name> kueue-managed=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
- 创建两个项目:项目 A 和项目 B。
-
将
kueue-managed
标签添加到 Project A。 在每个项目中,尝试创建 Ray 集群。
-
在项目 A 和具有
kue-managed
标签的所有项目中,其行为如 为所有项目 强制 local-queue 标签策略 中所述。 -
在没有
kue-managed
标签的 Project B 和所有项目中,其行为是 禁用所有项目的 local-queue 标签策略 中所述。
-
在项目 A 和具有