0770-Apache YuniKorn (Incubating) 0.8发布( 二 )
2.5 Evaluation
为了验证YuniKorn的功能和性能 , 我们社区进行了一系列评估 。 所有测试均使用Kubemark完成 ,
https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/devel/kubemark-guide.md#starting-a-kubemark-cluster该工具可帮助我们模拟大型K8s集群并运行实验性工作负载 。 这些测试共使用了18台裸金属服务器来模拟2000/4000节点 。
2.5.1 Scheduler Throughput
在K8s上运行大数据批处理工作负载(例如Spark)时 , 调度程序的吞吐量是最主要考虑的问题之一 。 YuniKorn提供了许多优化措施来提高性能 , 例如完全异步的事件驱动系统和低延迟排序策略 。 下图通过将YuniKorn(红线)与K8s默认调度程序(绿线)进行比较 , 揭示了调度程序的吞吐量(通过使用Kubemark模拟环境 , 并启动50,000个具有异构资源请求的Pod) 。
本文插图
图表记录了所有Pod在集群上运行所花费的时间
本文插图
2.5.2 Resource Fairness between queues
每个YuniKorn队列都有其保证的和最大的容量 。 当我们有很多作业提交到这些队列时 , YuniKorn确保每个队列都能获得应用的份额 。 当我们监视这些队列的资源使用情况时 , 我们可以清楚地看到如何实施公平性:
本文插图
我们在此集群上设置了4个异构队列 , 并针对这些队列提交了不同的工作负载 。 从图表中 , 我们可以看到队列资源几乎以相同的斜率增加 , 这意味着队列之间的资源是公平的 。
社区使用和参与
在Cloudera , 我们专注于将YuniKorn集成到各种Cloudera公有云产品中 , 同时我们也希望通过YuniKorn给大家在K8上运行大数据工作负载(例如Spark)带来一流的体验 。
阿里巴巴一直是我们重要的社区成员之一 。 阿里巴巴的Flink团队正在积极将YuniKorn引入其大规模Flink集群 , 以解决至今尚无法解决的许多问题 。
以下引用任春德(阿里巴巴实时计算开发经理)对Apache YuniKorn项目的评论:
“随着云原生和无服务计算的蓬勃发展 , 在K8的支持下 , 越来越多的大数据工作负载在阿里云中运行 , 以实现更好的部署和管理 。 我们发现使用现有的K8S调度在运行多租户大数据应用程序时存在较多的问题 , 比如多个租户之间没有公平性也没有配额管理 , 以及高并发工作负载时较低的调度吞吐量等 。 这些挑战通过YuniKorn都得到了很好的解决或者正在进行中(WIP) , 该项目的目的是建立一个具有精心设计架构的统一调度框架 。 因此 , 我们选择加入这个极具潜力的社区 。
我们已经在多个K8S的测试集群中使用YuniKorn几个月 , 并且一直在与社区一起对其进行改进 。 我们计划在2020年第二季度将YuniKorn部署在一个数千节点的新生产集群中 , 以提供实时计算服务 。 该目标旨在处理2020年阿里巴巴双11这一全球最大的24小时在线购物活动 。 ”
https://www.cnbc.com/2019/11/11/alibaba-singles-day-2019-record-sales-on-biggest-shopping-day.html
我们还获得了来自Microsoft , LinkedIn , 阿里巴巴 , 苹果 , 腾讯 , Nvidia等企业的大量帮助 , 以帮助并指导该项目的发展 。 对于YuniKorn 0.8.0发行版的贡献者 , 请参阅Apache YuniKorn发行公告 。
https://blogs.apache.org/Yunikorn/
接下来的计划
我们计划在2020年第三季度发布下一版本(0.9.0) , v0.9计划的主要功能包括priority scheduling , gang scheduling等 。 有关未来版本的更多详细信息 , 请参阅YuniKorn路线图 。