如何在多集群环境中管理作业
概述
本文档详细介绍了 Kueue 项目中 MultiKueue
特性的用法,特别是针对 Kubeflow MPI 作业。MultiKueue
功能可以有效管理和调度多个队列,优化资源分配,提高 MPI 作业的整体效率。spec.runPolicy.managedBy
字段是 Kubeflow Training Operator 中为支持 MultiKueue 而引入的新特性。此字段通过指定管理实体,可以实现更稳健的多集群作业分派管理。
先决条件
- 确保您已安装 Kubeflow Training Operator 版本不低于 1.9,以及 Kueue 版本不低于 0.11+。
- 确保 Kueue 已针对新 Operator 进行编译,以便利用
spec.runPolicy.managedBy
字段。
用法
要在您的训练作业中使用 spec.runPolicy.managedBy
字段,请将其包含在作业规范中,如下所示
apiVersion: "kubeflow.org/v1"
kind: "TFJob"
metadata:
name: "example-tfjob"
spec:
runPolicy:
managedBy: "kueue.x-k8s.io/multikueue"
tfReplicaSpecs:
...
示例
以下是使用 spec.managedBy 字段的 TensorFlow 作业完整示例
apiVersion: "kubeflow.org/v1"
kind: "TFJob"
metadata:
name: "example-tfjob"
spec:
runPolicy:
managedBy: "kueue.x-k8s.io/multikueue"
tfReplicaSpecs:
Chief:
replicas: 1
template:
spec:
containers:
- name: tensorflow
image: tensorflow/tensorflow:latest
args: ["python", "model.py"]
Worker:
replicas: 2
template:
spec:
containers:
- name: tensorflow
image: tensorflow/tensorflow:latest
args: ["python", "model.py"]
更多详情
有关使用 Kubeflow Training Operator 设置和使用 MultiKueue 的更多详情,请参阅以下文档页面
- Kueue/Kubeflow
- kueue 文档
最后修改于 2025年4月10日: trainer: 添加 MultiKueue 和 spec.managedBy API 的文档 (#3956) (0d462bd)