2.10. Gang 调度


Gang 调度(Gang scheduling)可确保一个组(或gang)相关的作业只在所有需要的资源都可用时才会启动。红帽构建的 Kueue 启用 gang scheduling 时,它会挂起作业,直到 OpenShift Container Platform 集群可以保证足够的容量以一起启动和执行 gang 中的所有相关作业。这也被称为 all-or-nothing 调度。

如果您使用昂贵的、有限的资源(如 GPU)时,则 Gang 调度非常重要。Gang 调度可以防止出现作业只是声明但不使用 GPU 的情况,这可以提高 GPU 利用率并降低运行成本。Gang 调度还可以帮助防止资源分段和死锁等问题。

2.10.1. 配置 gang 调度

作为集群管理员,您可以通过修改 Kueue 自定义资源 (CR) 中的 gangScheduling spec 来配置 gang 调度。

配置了 gang 调度的 Kueue CR 示例

apiVersion: kueue.openshift.io/v1
kind: Kueue
metadata:
  name: cluster
  labels:
    app.kubernetes.io/managed-by: kustomize
    app.kubernetes.io/name: kueue-operator
  namespace: openshift-kueue-operator
spec:
  config:
    gangScheduling:
      policy: ByWorkload 
1

      byWorkload:
        admission: Parallel 
2

# ...
Copy to Clipboard Toggle word wrap

1
您可以通过设置 policy 值来启用或禁用 gang 调度。可能的值包括 ByWorkload,None, 或空("")。
ByWorkload
policy 值被设置为 ByWorkload 时,每个作业都会被单独处理并被视为一个单元。如果作业没有在指定时间内就绪,整个作业都会被驱除并在以后重试。
None
policy 值被设置为 None 时,会禁用 gang 调度。
空 ("")
policy 值为空或设置为 "" 时,红帽构建的 Kueue Operator 会决定 gang 调度的设置。目前,会默认禁用 gang 调度。
2
如果 policy 值设置为 ByWorkload,您必须配置作业准入设置。admission spec 的可能值包括 Parallel, Sequential, 或空 ("")。
Parallel
admission 值设置为 Parallel 时,任何作业中的 pod 可以随时被接受。当作业竞争集群容量时可能会导致死锁。发生死锁时,从另一个作业成功调度的 pod 可能会阻止调度当前作为的 pod。
Sequential
admission 值设置为 Sequential 时,只接受当前处理作业中的 pod。在接受了所有来自当前作业中的 pod 且它们都已就绪后,红帽构建的 Kueue 会处理下一个作业。当集群有足够的容量用于多个作业时,Sequential 处理可能会减慢准入速度,但会增加一个作业的所有 pod 都被成功调度的可能性。
空 ("")
admission 值为空或设置为 "" 时,红帽构建的 Kueue Operator 会决定作业准入设置。目前,admission 值默认设置为 Parallel
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat