运行 MXJob
运行 Kueue 调度的 MXJob
此页面展示了在运行 训练算子 MXJob 时如何利用 Kueue 的调度和资源管理功能。
本指南适用于对 Kueue 有基本了解的 批处理用户。有关更多信息,请参阅 Kueue 概览。
开始之前
查看 管理集群配额 了解初始集群设置的详细信息。
查看 训练算子安装指南。
请注意,最低要求的训练算子版本是 v1.7.0。
您可以 修改已安装版本中的 kueue 配置,将 MXJob 包含为允许的工作负载。
MXJob 定义
a. 队列选择
目标 本地队列 应在 MXJob 配置的 metadata.labels
部分中指定。
metadata:
labels:
kueue.x-k8s.io/queue-name: user-queue
b. 可选地在 MXJob 中设置暂停字段
spec:
runPolicy:
suspend: true
默认情况下,Kueue 会通过 webhook 将 suspend
设置为 true,并在 MXJob 被接纳时取消暂停。
示例 MXJob
apiVersion: kubeflow.org/v1
kind: MXJob
metadata:
name: mxnet-job
labels:
kueue.x-k8s.io/queue-name: user-queue
spec:
jobMode: MXTrain
mxReplicaSpecs:
Scheduler:
replicas: 1
restartPolicy: Never
template:
spec:
containers:
- name: mxnet
image: kubeflow/mxnet-gpu:latest
resources:
limits:
cpu: 100m
memory: 0.2Gi
ports:
- containerPort: 9991
name: mxjob-port
Server:
replicas: 1
restartPolicy: Never
template:
spec:
containers:
- name: mxnet
image: kubeflow/mxnet-gpu:latest
resources:
limits:
cpu: 100m
memory: 0.2Gi
ports:
- containerPort: 9991
name: mxjob-port
Worker:
replicas: 1
restartPolicy: Never
template:
spec:
containers:
- name: mxnet
image: kubeflow/mxnet-gpu:latest
command:
- python3
args:
- /mxnet/mxnet/example/image-classification/train_mnist.py
- --num-epochs=1
- --num-layers=2
- --kv-store=dist_device_sync
resources:
limits:
cpu: 2
memory: 1Gi
ports:
- containerPort: 9991
name: mxjob-port