2.7. 管理作业和工作负载
红帽构建的 Kueue 不会直接操作用户创建的作业。相反,Kue 管理代表作业资源要求的 Workload 对象。红帽构建的 Kueue 会自动为每个作业创建一个工作负载,并同步两个对象之间的任何决策和状态。
2.7.1. 标记命名空间以允许红帽构建 Kueue 管理作业 复制链接链接已复制到粘贴板!
Red Hat build of Kue Operator 使用一个 opt-in webhook 机制来确保策略只针对预期目标的作业和命名空间强制执行。
您必须使用 kueue.openshift.io/managed=true 标签标记需要红帽构建的 Kueue.openshift.io/managed=true 标签的命名空间。
先决条件
- 有集群管理员权限。
-
在集群中安装 Red Hat build of
KueueOperator,您已创建了一个 Kue 自定义资源(CR)。 -
已安装 OpenShift CLI(
oc)。
流程
运行以下命令,将
kueue.openshift.io/managed=true标签添加到命名空间:$ oc label namespace <namespace> kueue.openshift.io/managed=true
添加此标签时,您指示红帽构建由其 webhook 准入控制器管理命名空间的 Kueue Operator。因此,该命名空间中的任何红帽构建的 Kueue 资源都会被正确验证并修改。
2.7.2. 为作业配置标签策略 复制链接链接已复制到粘贴板!
Kueue 自定义资源(CR)中的 spec.config.workloadManagement.labelPolicy spec 是一个可选字段,用于控制红帽构建的 Kueue 决定是否管理或忽略不同的作业。允许的值是 QueueName、None 和空("")。
如果 labelPolicy 设置被省略或为空(""),默认策略是红帽构建的 Kueue 管理具有 标签的作业,并忽略没有 kue.x-k8s.io/queue-name 标签的作业。这与 kueue.x-k8s.io/queue-name labelPolicy 设置为 QueueName 的工作流相同。
如果将 labelPolicy 设置设定为 None,则作业由红帽构建的 Kueue. x-k8s.io/queue-name 标签管理。
workloadManagement spec 配置示例
apiVersion: kueue.openshift.io/v1
kind: Kueue
metadata:
labels:
app.kubernetes.io/name: kueue-operator
app.kubernetes.io/managed-by: kustomize
name: cluster
namespace: openshift-kueue-operator
spec:
config:
workloadManagement:
labelPolicy: QueueName
# ...
包含 kueue.x-k8s.io/queue-name 标签的用户创建 作业对象 示例
apiVersion: batch/v1
kind: Job
metadata:
generateName: sample-job-
namespace: my-namespace
labels:
kueue.x-k8s.io/queue-name: user-queue
spec:
# ...