2.10. Gang 调度


Gang 调度可确保只有在所有所需资源都可用时,才会启动相关作业的组或上角。红帽构建的 Kueue 通过暂停作业来实现 gang 调度,直到 OpenShift Container Platform 集群可以保证容量一起启动和执行所有相关作业。这也被称为 all-or-nothing 调度。

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

2.10.1. 配置 gang 调度

作为集群管理员,您可以通过修改 Kue 自定义资源(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
您可以将 策略值设置为 启用或禁用 gang 调度。可能的值有 ByWorkload,None, 或空("")。
ByWorkload
当策略 值设置为 ByWorkload 时,每个作业都会被处理并被视为一个单元。如果作业没有在指定时间内就绪,则整个作业都会被驱除并在以后重试。
None
当策略值设置为 None 时,会禁用 gang 调度。
空("")
当策略 值为空或设置为 "" 时,红帽构建的 Kueue Operator 会决定 gang 调度的设置。目前,默认禁用 gang 调度。
2
如果策略 值设置为 ByWorkload,您必须配置作业准入设置。准入 spec 的可能值为 Parallel,Sequential, 或空("")。
parallel
准入 值设置为 Parallel 时,任何作业中的 pod 可以随时接受。这可能导致死锁,作业处于集群容量争用的位置。发生死锁时,从另一个作业成功调度 pod 可能会阻止 pod 调度当前作业。
顺序
准入 值设置为 Sequential 时,只接受当前处理作业中的 pod。在接受并准备好当前作业中的所有 pod 后,红帽构建会处理下一个作业。当集群有足够的容量用于多个作业时,顺序处理可能会减慢准入速度,但会增加作业的所有 pod 已被成功调度的可能性。
空("")
准入 值为空或设置为 "" 时,红帽构建的 Kueue Operator 会决定作业准入设置。目前,准入 值设置为 Parallel
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat