运行 JobSet
运行 Kueue 调度的 JobSet。
本文档说明了在运行 JobSet Operator JobSet 时如何使用 Kueue 的调度和资源管理功能。
本指南适用于对 Kueue 有基本了解的 批处理用户。有关更多信息,请参阅 Kueue 概述。
开始之前
JobSet 定义
在 Kueue 上运行 JobSet 时,请考虑以下方面
a. 队列选择
目标 本地队列 应在 JobSet 配置的 metadata.labels
部分中指定。
metadata:
labels:
kueue.x-k8s.io/queue-name: user-queue
b. 配置资源需求
工作负载的资源需求可以在 spec.replicatedJobs
中配置。还应考虑副本数、并行性 和完成情况会影响资源计算。
- replicas: 1
template:
spec:
completions: 2
parallelism: 2
template:
spec:
containers:
- resources:
requests:
cpu: 1
c. 作业优先级
第一个不为空的 spec.replicatedJobs
的 PriorityClassName 将用作优先级。
- template:
spec:
template:
spec:
priorityClassName: high-priority
示例 JobSet
JobSet 如下所示
# jobset-sample.yaml
apiVersion: jobset.x-k8s.io/v1alpha2
kind: JobSet
metadata:
generateName: sleep-job-
labels:
kueue.x-k8s.io/queue-name: user-queue
spec:
network:
enableDNSHostnames: false
subdomain: some-subdomain
replicatedJobs:
- name: workers
replicas: 2
template:
spec:
parallelism: 4
completions: 4
backoffLimit: 0
template:
spec:
containers:
- name: sleep
image: busybox
resources:
requests:
cpu: 1
memory: "200Mi"
command:
- sleep
args:
- 100s
- name: driver
template:
spec:
parallelism: 1
completions: 1
backoffLimit: 0
template:
spec:
containers:
- name: sleep
image: busybox
resources:
requests:
cpu: 2
memory: "200Mi"
command:
- sleep
args:
- 100s
注意
相同的jobset-sample.yaml
文件来自 单集群环境 可以在 MultiKueue 环境 中使用。在该设置中,如果未指定,spec.managedBy
字段将自动设置为 kueue.x-k8s.io/multikueue
,只要指定了 kueue.x-k8s.io/queue-name
注释并且相应的集群队列使用 Multi Kueue 准入检查。您可以使用以下命令运行此 JobSet
# To monitor the queue and admission of the jobs, you can run this example multiple times:
kubectl create -f jobset-sample.yaml