运行 JAXJob
使用 Kueue 调度 JAXJob
此页面展示了在运行 Trainer JAXJob 时,如何利用 Kueue 的调度和资源管理能力。
本指南适用于对 Kueue 有基本了解的批处理用户。 欲了解更多信息,请参阅 Kueue 概述。
警告
弃用通知: Kueue 中与 Kubeflow Trainer v1(包括 JAXJob)的集成已弃用,并将于未来的版本(暂定 v0.20)中移除。
Kubeflow Trainer v1 现在已是传统遗留项目(legacy)。我们强烈建议迁移到 Kubeflow Trainer v2(在 Kueue 中已通过 TrainJob(英文文档)提供支持),或者使用其他替代框架(例如 JobSet)来运行您的作业。有关如何迁移的详细信息,请参阅 Kubeflow Trainer v1 到 v2 迁移指南(英文文档)。
开始之前
检查管理集群配额, 以获取有关初始集群设置的详细信息。
查阅 Trainer 安装指南。
请注意,Trainer 的最低要求版本是 v1.9.0。
你可以修改已安装版本的 Kueue 配置, 以将 JAXJob 添加到允许的工作负载中。
Note
为了使用 Trainer,在 v0.8.1 之前,你需要在安装后重启 Kueue。 你可以通过运行以下命令来实现:kubectl delete pods -l control-plane=controller-manager -n kueue-system。JAXJob 定义
a. 队列选择
目标本地队列应当在 JAXJob
配置的 metadata.labels 部分中指定。
metadata:
labels:
kueue.x-k8s.io/queue-name: user-queue
b. 可选择在 JAXJob 中设置 Suspend 字段
spec:
runPolicy:
suspend: true
默认情况下,Kueue 将通过 Webhook 将 suspend 设置为 true,并在 JAXJob 被接受时取消挂起。
JAXJob 示例
apiVersion: kubeflow.org/v1
kind: JAXJob
metadata:
name: jax-simple
namespace: default
labels:
kueue.x-k8s.io/queue-name: user-queue
spec:
jaxReplicaSpecs:
Worker:
replicas: 2
restartPolicy: OnFailure
template:
spec:
containers:
- name: jax
image: docker.io/kubeflow/jaxjob-simple:latest
command:
- "python3"
- "train.py"
imagePullPolicy: Always
resources:
requests:
cpu: 1
memory: "200Mi"
反馈
这个页面有帮助吗?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.