概述

为何选择 Kueue?

Kueue 是一个 Kubernetes 原生系统,用于管理配额以及作业如何消耗配额。Kueue 决定作业何时应该等待,何时应该允许作业开始(如可以创建 Pod),以及何时应该抢占作业(如应该删除活动 Pod)。

为何使用 Kueue

您可以在普通的 Kubernetes 集群上安装 Kueue。Kueue 不会替换任何现有的 Kubernetes 组件。Kueue 与以下云环境兼容:

  • 计算资源具有弹性,可以按需扩展。
  • 计算资源是异构的(在架构、可用性、价格等方面)。

Kueue API 允许您表达

  • 租户之间公平共享的配额和策略。
  • 资源可替代性:如果一种资源类型已完全利用,Kueue 可以使用另一种类型来允许作业。

Kueue 的核心设计原则是避免在 Kubernetes 组件和成熟的第三方控制器中复制成熟的功能。自动伸缩、pod 到节点调度和作业生命周期管理分别由 cluster-autoscaler、kube-scheduler 和 kube-controller-manager 负责。高级准入控制可以委托给 gatekeeper 等控制器。

功能概览

  • 作业管理:支持基于 优先级的作业队列,并具有不同的 策略StrictFIFOBestEffortFIFO
  • 资源管理:支持资源公平共享和 抢占,并在不同租户之间采用各种策略。
  • 动态资源回收:一种机制,用于在作业的 pod 完成时 释放配额。
  • 资源风味可替代性:在 ClusterQueue 和 Cohort 中配额 借用或抢占
  • 集成:内置支持流行的作业,例如 BatchJobKubeflow 训练作业RayJobRayClusterJobSet普通 Pod
  • 系统洞察:内置 prometheus 指标以帮助监控系统状态以及条件。
  • 准入检查:内部或外部组件影响是否可以 准入工作负载的机制。
  • 高级自动伸缩支持:通过 admissionChecks 集成 cluster-autoscaler 的 provisioningRequest
  • 带有就绪 Pod 的全有或全无:基于超时的 全有或全无调度实现。
  • 部分准入:允许作业在可用的配额的基础上以 较小的并行度运行,如果应用程序支持的话。

高级 Kueue 操作

High Level Kueue Operation

要详细了解 Kueue 概念,请参阅 概念 部分。

要了解不同的 Kueue 角色以及使用 Kueue 可以做什么,请参阅 任务 部分。



上次修改时间为 2024 年 7 月 15 日:修复:修复损坏的链接 (#2617) (22e2e0f8)