如何在多集群环境中管理作业

概述

本文档详细介绍了 Kueue 项目中 MultiKueue 特性的用法,特别是针对 Kubeflow MPI 作业。MultiKueue 功能可以有效管理和调度多个队列,优化资源分配,提高 MPI 作业的整体效率。spec.runPolicy.managedBy 字段是 Kubeflow Training Operator 中为支持 MultiKueue 而引入的新特性。此字段通过指定管理实体,可以实现更稳健的多集群作业分派管理。

先决条件

  1. 确保您已安装 Kubeflow Training Operator 版本不低于 1.9,以及 Kueue 版本不低于 0.11+。
  2. 确保 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 的更多详情,请参阅以下文档页面

反馈

此页面有帮助吗?


最后修改于 2025年4月10日: trainer: 添加 MultiKueue 和 spec.managedBy API 的文档 (#3956) (0d462bd)