本文参考自:YuniKorn 中文官网:http://www.yunikorn.cn/

一、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 目前支持的调度功能列表:

(1)调度功能支持批处理作业和长期运行 / 有状态服务

(2)具有最小 / 最大资源配额的分层池 / 队列

(3)队列,用户和应用程序之间的资源公平性

(4)基于公平性的跨队列抢占

(5)自定义资源类型(如 GPU)调度支持

(6)丰富的编排约束支持

(7)根据策略自动将传入的容器请求映射到队列

(8)对节点使用专用配额 / ACL 管理将大的集群拆分成若干子群集

七、参考

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

转载于:https://www.cnblogs.com/nanfeng99/p/11220143.html

YuniKorn 介绍相关推荐

  1. 简单介绍互联网领域选择与营销方法

    在我看来,互联网领域的选择是"安家",而营销方法的不同则表现了"定家"的方式多种多样,只有选对了,"家"才得以"安定". ...

  2. 常用开源协议介绍以及开源软件规范列表

    1. 开源协议介绍 GPL: General Public License,开源项目最常用的许可证,衍生代码的分发需开源并且也要遵守此协议.该协议也有很多变种,不同变种要求会略微不同. MPL: MP ...

  3. python:Json模块dumps、loads、dump、load介绍

    20210831 https://www.cnblogs.com/bigtreei/p/10466518.html json dump dumps 区别 python:Json模块dumps.load ...

  4. pytorch学习笔记(九):PyTorch结构介绍

    PyTorch结构介绍 对PyTorch架构的粗浅理解,不能保证完全正确,但是希望可以从更高层次上对PyTorch上有个整体把握.水平有限,如有错误,欢迎指错,谢谢! 几个重要的类型 和数值相关的 T ...

  5. Python字节码介绍

    了解 Python 字节码是什么,Python 如何使用它来执行你的代码,以及知道它是如何帮到你的. 如果你曾经编写过 Python,或者只是使用过 Python,你或许经常会看到 Python 源代 ...

  6. Pytest - 使用介绍

    1. 概述 pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点: 1.简单灵活,容易上手,文档丰富: 2.支持参数化,可以细粒度地控制要测试的测试用例: 3.能够支持简单的单 ...

  7. 遗传算法的简单介绍以及模式定理的简单证明

    遗传算法   遗传算法(Genetic Algorithm,GA),最早是由美国的John holland在20世纪70年代提出.算法通过模拟达尔文生物进化论的自然选择以及遗传学机理的生物进化过程来搜 ...

  8. k8s核心组件详细介绍教程(配超详细实例演示)

    本文实验环境基于上篇文章手把手从零开始搭建k8s集群超详细教程 本文根据B站课程云原生Java架构师的第一课K8s+Docker+KubeSphere+DevOps学习总结而来 k8s核心组件介绍 1 ...

  9. Tensorrt一些优化技术介绍

    Tensorrt一些优化技术介绍 Figure 1. A quantizable AveragePool layer (in blue) is fused with a DQ layer and a ...

最新文章

  1. 使用JDBC获取Oracle连接时报错
  2. Zookeeper的典型应用场景(2)
  3. CodeForces - 1437E Make It Increasing(确定首尾的最长不下降子序列)
  4. hibernate mysql 主从_MYSQL主从复制和写分离
  5. AjaxFileUploader上传插件 兼容性好
  6. Python调用C函数的方法以及如何编写Python的C扩展
  7. LA3485二分+求解积分方程+辛普森算法计算积分
  8. 【Linux常用指令整理8】别名、输入/输出重定向、管道、命令连接符、命令替换符...
  9. 为ASP.NET AJAX 1.0 Beta补充trace和dump功能
  10. php装箱,PHP实现的装箱算法示例
  11. 电涡流传感器9200-06-05-10-00本特利
  12. .EXE病毒解决(U盘中文件夹不见,显示原文件夹后缀.exe)
  13. 可魔术变身笔记本的平板电脑,华为全功能MediaPad 10 FHD评测
  14. 任天堂游戏 html5,明年的预备阵容!任天堂承诺却还没出的作品
  15. OD CE找数据总结(上)
  16. 安卓html调色器,5个超棒的在线配色神器
  17. 力扣每日一题2022-05-04中等题:找出游戏的获胜者
  18. order finding before shor's algorithm
  19. taobao.trade.fullinfo.get( 获取单笔交易的详细信息 )、淘宝店铺卖出订单详情接口,店铺订单明文接口,店铺订单解密接口,店铺订单消息推送接口
  20. QGraphicsItem基本图元的添加以及闪烁图元和移动图元的添加

热门文章

  1. Android和OpenCV的学习mat运算/颜色转换
  2. android设备怎么支持8021x,android WiFi ASSOC_REJECT 流程跟踪
  3. Pytorch3D_上手学习3D的AI模型
  4. 自动关闭当前的Fragment返回上一个Fragment该如何实现
  5. Android -结束当前activity并返回上一个activity
  6. 关于联想小新16pro无网络问题_雪雪专享篇(安装网卡驱动篇)
  7. PokemonGo:LBS游戏开发
  8. 3D游戏编程与设计作业六
  9. NUCC- Nets Union Clearning Corporation
  10. 51单片机流水灯制作