使用工作负载优先级(`WorkloadPriority`)运行作业(Job)
使用工作负载优先级运行作业(Job),此优先级(Priority)与 Pod 优先级无关
通常,在 Kueue 中,工作负载的优先级是使用 Pod 的优先级来计算的,用于排队和抢占。
通过使用 WorkloadPriorityClass
,
你可以独立管理工作负载的优先级,以便进行排队和抢占,与 Pod 的优先级分开。
此页面包含如何使用工作负载优先级运行作业的说明。
在你开始之前
确保满足以下条件:
- 一个正在运行的 Kubernetes 集群。
- kubectl 命令行工具能够与你的集群通信。
- Kueue 已安装。
0. 创建 WorkloadPriorityClass
首先应该创建 WorkloadPriorityClass。
apiVersion: kueue.x-k8s.io/v1beta1
kind: WorkloadPriorityClass
metadata:
name: sample-priority
value: 10000
description: "Sample priority"
1. 创建带有 kueue.x-k8s.io/priority-class
标签的作业
你可以通过设置 kueue.x-k8s.io/priority-class
标签来指定 WorkloadPriorityClass
。
这与其他 CRD(例如 RayJob
)相同。
apiVersion: batch/v1
kind: Job
metadata:
name: sample-job
labels:
kueue.x-k8s.io/queue-name: user-queue
kueue.x-k8s.io/priority-class: sample-priority
spec:
parallelism: 3
completions: 3
suspend: true
template:
spec:
containers:
- name: dummy-job
image: registry.k8s.io/e2e-test-images/agnhost:latest
args: ["pause"]
restartPolicy: Never
Kueue 为上述作业生成了以下 Workload
。
工作负载的优先级在 Kueue 中用于排队、抢占和其他调度过程。
此优先级不影响 Pod 的优先级。
工作负载的 Priority
字段总是可变的,因为这对于抢占可能有用。
工作负载的 PriorityClassSource
和 PriorityClassName
字段是不可变的。
apiVersion: kueue.x-k8s.io/v1beta1
kind: Workload
metadata:
name: job-sample-job-7f173
spec:
priorityClassSource: kueue.x-k8s.io/workloadpriorityclass
priorityClassName: sample-priority
priority: 10000
queueName: user-queue
podSets:
- count: 3
name: dummy-job
template:
spec:
containers:
- name: dummy-job
image: registry.k8s.io/e2e-test-images/agnhost:latest
args: ["pause"]
反馈
这个页面有帮助吗?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.