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