运行 TFJob

使用 Kueue 调度 TFJob

此页面展示了在运行 Trainer TFJob 时,如何利用 Kueue 的调度和资源管理能力。

本指南适用于对 Kueue 有基本了解的批处理用户。 欲了解更多信息,请参阅 Kueue 概述

开始之前

请查看管理集群配额, 以获取初始集群设置的详细信息。

请查阅 Trainer 安装指南

请注意,Trainer 的最低要求版本是 v1.7.0。

你可以修改已安装版本的 Kueue 配置, 以将 TFJob 添加到允许的工作负载中。

TFJob 定义

a. 队列选择

目标 本地队列 应当在 TFJob 配置的 metadata.labels 部分指定。

metadata:
  labels:
    kueue.x-k8s.io/queue-name: user-queue

b. 可选择在 TFJob 中设置 Suspend 字段

spec:
  runPolicy:
    suspend: true

默认情况下,Kueue 将通过 Webhook 将 suspend 设置为 true,并在 TFJob 被接受时取消挂起。

TFJob 示例

此示例基于 https://github.com/kubeflow/trainer/blob/48dbbf0a8e90e52c55ec05d0f689fcbf83c6b441/examples/tensorflow/dist-mnist/tf_job_mnist.yaml

apiVersion: kubeflow.org/v1
kind: TFJob
metadata:
  name: tensorflow-dist-mnist
  namespace: default
  labels:
    kueue.x-k8s.io/queue-name: user-queue
spec:
  tfReplicaSpecs:
    PS:
      replicas: 1
      restartPolicy: Never
      template:
        spec:
          containers:
            - name: tensorflow
              image: kubeflow/tf-dist-mnist-test:latest
              resources:
                requests:
                  cpu: 1
                  memory: "200Mi"
    Worker:
      replicas: 2
      restartPolicy: Never
      template:
        spec:
          containers:
            - name: tensorflow
              image: kubeflow/tf-dist-mnist-test:latest
              resources:
                requests:
                  cpu: 1
                  memory: "200Mi"