Skip to main content

发布公告 v0.9.0

我们非常高兴地宣布 Apache YuniKorn(Incubating) 社区已投票发布 0.9.0。这是 Apache 孵化器项目的第二个版本。

Apache YuniKorn (Incubating) 是一个独立的资源调度器,旨在管理和调度容器编排框架上的大数据工作负载,支持本地和云端的用例。 该版本进一步提升了 Kubernetes 的资源调度和管理能力,并对运行的 Apache Spark、Apache Flink 工作负载进行了一些优化。

概述

Apache YuniKorn (Incubating)社区在此版本中修复了 130 多个 JIRA 问题:YuniKorn 在 0.9.0 中修复的 jira 问题

发布负责人: Wilfred Spiegelenburg

发布日期: 2020-08-28

主要更新

资源配额管理

这个版本的 YuniKorn 提供了一种无缝方式来管理 Kubernetes 集群的资源配额,它可以作为 命名空间资源配额 的替代方案。 与命名空间资源配额相比,使用此功能有两个主要优点:

  1. 命名空间资源配额是在准入阶段对资源进行统计,与pod是否在使用资源无关。这可能导致无法有效使用命名空间资源的问题。
  2. 命名空间资源配额是扁平化的,不支持分层资源配额管理。

如果可能导致命名空间超出其配额,资源配额准入控制器会拒绝 pod,这会增加客户端代码的复杂性。 通过使用 YuniKorn 提供的资源配额管理,它的设置更加高效、无缝,并提供作业队列来处理常见的调度排序需求。

作业排序策略: StateAware (状态感知/优化的 FIFO)

StateAware 应用排序策略以 FIFO 顺序排列队列中的作业,并根据条件一一调度。条件是等待应用程序进入可运行状态。这避免了在向单个命名空间(或集群)提交大量批处理作业(例如 Spark)时常见的竞争条件。通过按照特定顺序强制执行作业,它还改进了作业的调度,使其更具可预测性。可以在此处的文档中找到有关此功能的更多说明。

自动缩放的改进

在这个版本中,YuniKorn 已经通过大量测试,可以很好地与 Kubernetes 集群自动缩放器配合使用。它通过与 cluster-autoscaler 高效工作,为 Kubernetes 集群带来最大的弹性。在此版本中修复了一些错误并进行了一些改进。

事件缓存系统

在此版本中,调度器中添加了一个高效的事件缓存系统。该系统将一些关键调度事件缓存在内存存储中,并在需要时将它们发布到 Kubernetes 事件系统。使用 kubectl 命令可以直接从 Kubernetes 看到更多调度事件。这有助于提高可用性和可调试性。

更全面的 Web UI

YuniKorn UI 为资源管理提供了更好的集中视图。UI 中添加了一个新的“节点”页面,以显示集群中的详细节点信息。 应用程序页面已得到增强,它现在提供了一个搜索框,可按队列名称或应用程序 ID 搜索应用程序。

社区

Apache YuniKorn 社区很高兴地欢迎新的 committer Gao Li。我们希望看到更多的提交者加入社区并帮助塑造项目。在过去的几个月里,我们会继续在2个不同的时区举行两周一次的社区会议。感谢所有参加这些会议并提供反馈和宝贵想法的社区人员。

感谢以下直接为项目贡献代码的贡献者:Adam Antal, Akhil Puthenveettil Balan, Ayub Khan Pathan, Kinga Marton, Manikandan R, Sunil Govindan, Tao Yang, Tingyao Huang, Tim Rots, Wangda Tan, Wanqiang Ji, Weiwei Yang, Wilfred Spiegelenburg。