运行 JobSet

运行 Kueue 调度的 JobSet。

本文档说明了在运行 JobSet Operator JobSet 时如何使用 Kueue 的调度和资源管理功能。

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

开始之前

  1. 查看 管理集群配额,了解 Kueue 初始设置的详细信息。

  2. 有关 JobSet Operator 的安装和配置详细信息,请参阅 JobSet 安装

JobSet 定义

在 Kueue 上运行 JobSet 时,请考虑以下方面

a. 队列选择

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

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

b. 配置资源需求

工作负载的资源需求可以在 spec.replicatedJobs 中配置。还应考虑副本数、并行性 和完成情况会影响资源计算。

    - replicas: 1
      template:
        spec:
          completions: 2
          parallelism: 2
          template:
            spec:
              containers:
                - resources:
                    requests:
                      cpu: 1

c. 作业优先级

第一个不为空的 spec.replicatedJobsPriorityClassName 将用作优先级。

    - template:
        spec:
          template:
            spec:
              priorityClassName: high-priority

示例 JobSet

JobSet 如下所示

# jobset-sample.yaml
apiVersion: jobset.x-k8s.io/v1alpha2
kind: JobSet
metadata:
  generateName: sleep-job-
  labels:
    kueue.x-k8s.io/queue-name: user-queue
spec:
  network:
    enableDNSHostnames: false
    subdomain: some-subdomain
  replicatedJobs:
    - name: workers
      replicas: 2
      template:
        spec:
          parallelism: 4
          completions: 4
          backoffLimit: 0
          template:
            spec:
              containers:
                - name: sleep
                  image: busybox
                  resources:
                    requests:
                      cpu: 1
                      memory: "200Mi"
                  command:
                    - sleep
                  args:
                    - 100s
    - name: driver
      template:
        spec:
          parallelism: 1
          completions: 1
          backoffLimit: 0
          template:
            spec:
              containers:
                - name: sleep
                  image: busybox
                  resources:
                    requests:
                      cpu: 2
                      memory: "200Mi"
                  command:
                    - sleep
                  args:
                    - 100s

您可以使用以下命令运行此 JobSet

# To monitor the queue and admission of the jobs, you can run this example multiple times:
kubectl create -f jobset-sample.yaml