发布公告 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 集群的资源配额,它可以作为 命名空间资源配额 的替代方案。 与命名空间资源配额相比,使用此功能有两个主要优点:
- 命名空间资源配额是在准入阶段对资源进行统计,与pod是否在使用资源无关。这可能导致无法有效使用命名空间资源的问题。
- 命名空间资源配额是扁平化的,不支持分层资源配额管理。
如果可能导致命名空间超出其配额,资源配额准入控制器会拒绝 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。