2.11. 使用配额限制运行作业


您可以使用启用了红帽构建的 Kueue 运行 Kubernetes 作业,以便在定义的配额限值内管理资源分配。这有助于确保可预见的资源可用性、集群稳定性和优化性能。

2.11.1. 识别可用的本地队列

在向队列提交一个作业前,您需要找到本地队列的名称。

先决条件

  • 集群管理员已在 OpenShift Container Platform 集群上安装和配置了红帽构建的 Kueue。
  • 集群管理员已为您分配了 kue-batch-user-role 集群角色。
  • 已安装 OpenShift CLI(oc)。

流程

  • 运行以下命令列出命名空间中的可用本地队列:

    $ oc -n <namespace> get localqueues
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME         CLUSTERQUEUE    PENDING WORKLOADS
    user-queue   cluster-queue   3
    Copy to Clipboard Toggle word wrap

当您定义要使用红帽构建 Kueue 运行的作业时,请确保它满足以下条件:

  • 使用 kueue.x-k8s.io/queue-name 标签指定要提交作业的本地队列。
  • 包括每个作业 pod 的资源请求。

红帽构建的 Kueue 会暂停作业,然后在有资源可用时启动它。红帽构建的 Kueue 创建了对应的工作负载,以 Workload 对象表示,其名称与作业匹配。

先决条件

  • 集群管理员已在 OpenShift Container Platform 集群上安装和配置了红帽构建的 Kueue。
  • 集群管理员已为您分配了 kue-batch-user-role 集群角色。
  • 已安装 OpenShift CLI(oc)。
  • 您已确定要提交作业的本地队列的名称。

流程

  1. 创建 Job 对象。

    作业示例

    apiVersion: batch/v1
    kind: Job 
    1
    
    metadata:
      generateName: sample-job- 
    2
    
      namespace: my-namespace
      labels:
        kueue.x-k8s.io/queue-name: user-queue 
    3
    
    spec:
      parallelism: 3
      completions: 3
      template:
        spec:
          containers:
          - name: dummy-job
            image: registry.k8s.io/e2e-test-images/agnhost:2.53
            args: ["entrypoint-tester", "hello", "world"]
            resources: 
    4
    
              requests:
                cpu: 1
                memory: "200Mi"
          restartPolicy: Never
    Copy to Clipboard Toggle word wrap

    1
    将资源类型定义为 Job 对象,它代表批处理计算任务。
    2
    提供用于为作业生成唯一名称的前缀。
    3
    标识将作业发送到的队列。
    4
    定义各个容器集的资源请求。
  2. 运行以下命令来运行作业:

    $ oc create -f <filename>.yaml
    Copy to Clipboard Toggle word wrap

验证

  • 运行以下命令,验证 pod 是否在您创建的作业中运行:

    $ oc get job <job-name>
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME               STATUS      COMPLETIONS   DURATION   AGE
    sample-job-sk42x   Suspended   0/1                      2m12s
    Copy to Clipboard Toggle word wrap

  • 运行以下命令并观察输出,验证您的命名空间中是否为作业创建了工作负载:

    $ oc -n <namespace> get workloads
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                         QUEUE          RESERVED IN   ADMITTED   FINISHED   AGE
    job-sample-job-sk42x-77c03   user-queue                                         3m8s
    Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat