一、YuniKorn 简介

YuniKorn 是一种轻量级的通用资源调度程序,适用于容器编排系统。它的创建是为了一方面在大规模,多租户环境中有效地实现各种工作负载的细粒度资源共享,另一方面可以动态地创建云原生环境。

YuniKorn 为混合工作负载提供统一的跨平台调度体验,包括无状态批处理工作负载和状态服务,支持但不限于 YARN 和 Kubernetes。YuniKorn['ju:nikɔ:n] 是一个虚构的词,"Y"代表 YARN,"K"代表 K8s,"Uni"代表统一,其发音与"Unicorn"相同。创建它是为了最初支持这两个系统,但最终目的是创建一个可以支持任何容器协调器系统的统一调度程序。

二、YuniKorn 组件介绍

YuniKorn 目前有 4 个组件,如下所示:

(1)yunikorn-scheduler-interface
(2)yunikorn-core
(3)yunikorn-k8shim
(4)yunikorn-web

三、YuniKorn 组件功能

YuniKorn -scheduler-interface:调度程序接口是资源管理平台(如 YARN / K8s)将通过诸如 GRPC / 编程语言绑定之类的 API 与之交谈的抽象层。

YuniKorn Core:YuniKorn Core 封装了所有调度算法,它从资源管理平台(如 YARN / K8s)下面收集资源,并负责资源分配请求。它决定每个请求的最佳部署位置,然后将响应分配发送到资源管理平台。调度程序核心与下层平台无关,所有通信都通过调度程序接口。

Scheduler Shim Layers:调度程序 Shim 在主机系统内运行(如 YARN / K8s),它负责通过调度程序接口转换主机系统资源和资源请求,并将它们发送到调度程序核心。在做出调度程序决策时,它负责实际的 pod / 容器绑定。

Scheduler UI:调度程序 UI 为已托管的节点,计算资源,应用程序和队列提供简单视图。

四、YuniKorn 诞生背景

很多企业用户在不同的平台上运行工作负载,例如 YARN 和 Kubernetes。他们需要使用不同的资源调度程序,以便规划其工作负载有效地在这些平台上运行。但是,在目前来看,调度程序生态系统是分散的,并且在很多方面不是很理想。例如:
(1)YARN 具有批量工作负载的 Capacity Scheduler 和 Fair Scheduler。
(2)K8s 具有服务的默认调度程序。对于批处理工作负载,社区有 Kube-batch,Poseidon,Rubix(Spark 的 Scheduler 扩展)。

五、YuniKorn 架构设计

YuniKorn 的其中一个设计目标是将调度程序与下面的资源管理系统分离,为此,YuniKorn创建了一个定义通信协议的通用调度程序接口。通过利用它,scheduler-core 和 shim 一起工作来处理调度请求。关于 YuniKorn 架构设计,如下所示:

六、YuniKorn 的调度功能特性

以下是 YuniKorn 目前支持的调度功能列表:

调度功能支持批处理作业和长期运行 / 有状态服务
具有最小 / 最大资源配额的分层池 / 队列
队列,用户和应用程序之间的资源公平性
基于公平性的跨队列抢占
自定义资源类型(如 GPU)调度支持
丰富的编排约束支持
根据策略自动将传入的容器请求映射到队列
对节点使用专用配额 / ACL 管理将大的集群拆分成若干子群集

七、参考

YuniKorn 中文官网:http://www.yunikorn.cn/

最新文章

  1. Jenkins插件安装和系统配置
  2. CSharpGL(5)解析3DS文件并用CSharpGL渲染
  3. filterHTML
  4. git pull 然后 ahead of origin/master * commit 消失
  5. Ptex源码学习笔记-2
  6. 记录那些我不清楚的知识点(HTML)
  7. 【JAVA 小结】Java关于类与对象的代码
  8. tmpfs——Linux的一种虚拟内存文件系统
  9. 去除DEDECMS后台预览文章URL地址多余的数字信息
  10. Python模拟HTTP Post上传文件
  11. lcd 图片
  12. Linux各发行版本简介
  13. JS判断设备终端(PC,iPad,iPhone,android,winPhone)和浏览器
  14. json格式键盘编码对照表
  15. Matlab绘图基础——其他三维图形(绘制填充的五角星)
  16. C# 解决winform 窗体控件在窗体变化时闪烁的问题
  17. IBM-x3650做RAID5更换硬盘后rebuild步骤分享
  18. 21 re正则模块 垃圾回收机制
  19. GDB 显示别的文件;在别文件打断点;执行到函数末尾;跳出当前函数
  20. 获取Ueditor里面的图片列表,地址绝对化

热门文章

  1. UWP StorageFile StorageFolder StorageFileHelper
  2. MongoDB数据库和集合的基本操作
  3. QML学习【一】Basic Types
  4. windows service 之访问权限(有NetworkService和LocalSystem的区分)
  5. “多团队大规模”开发模式 - 基于SAP HANA平台的多团队产品研发
  6. 用CMake 构建Qt 项目
  7. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发4- 后台模板html页面创建
  8. MYSQL的全局变量和会话变量
  9. mogodbshell中数组对象查询修改方法
  10. ElasticSearch学习(一):ElasticSearch介绍