YuniKorn 介紹

本文參考自:YuniKorn 中文官網:http://www.yunikorn.cn/

1、YuniKorn 簡介

YuniKorn 是一種輕量級的通用資源調度程序,適用於容器編排系統。它的建立是爲了一方面在大規模,多租戶環境中有效地實現各類工做負載的細粒度資源共享,另外一方面能夠動態地建立雲原生環境。html

YuniKorn 爲混合工做負載提供統一的跨平臺調度體驗,包括無狀態批處理工做負載和狀態服務,支持但不限於 YARN 和 Kubernetes。YuniKorn['ju:nikɔ:n] 是一個虛構的詞,"Y"表明 YARN,"K"表明 K8s,"Uni"表明統一,其發音與"Unicorn"相同。建立它是爲了最初支持這兩個系統,但最終目的是建立一個能夠支持任何容器協調器系統的統一調度程序。web

2、YuniKorn 組件介紹

YuniKorn 目前有 4 個組件,以下所示:算法

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

3、YuniKorn 組件功能

YuniKorn -scheduler-interface:調度程序接口是資源管理平臺(如 YARN / K8s)將經過諸如 GRPC / 編程語言綁定之類的 API 與之交談的抽象層。架構

YuniKorn Core:YuniKorn Core 封裝了全部調度算法,它從資源管理平臺(如 YARN / K8s)下面收集資源,並負責資源分配請求。它決定每一個請求的最佳部署位置,而後將響應分配發送到資源管理平臺。調度程序核心與下層平臺無關,全部通訊都經過調度程序接口。編程語言

Scheduler Shim Layers:調度程序 Shim 在主機系統內運行(如 YARN / K8s),它負責經過調度程序接口轉換主機系統資源和資源請求,並將它們發送到調度程序核心。在作出調度程序決策時,它負責實際的 pod / 容器綁定。spa

Scheduler UI:調度程序 UI 爲已託管的節點,計算資源,應用程序和隊列提供簡單視圖。架構設計

4、YuniKorn 誕生背景

不少企業用戶在不一樣的平臺上運行工做負載,例如 YARN 和 Kubernetes。他們須要使用不一樣的資源調度程序,以便規劃其工做負載有效地在這些平臺上運行。可是,在目前來看,調度程序生態系統是分散的,而且在不少方面不是很理想。例如:
(1)YARN 具備批量工做負載的 Capacity Scheduler 和 Fair Scheduler。
(2)K8s 具備服務的默認調度程序。對於批處理工做負載,社區有 Kube-batch,Poseidon,Rubix(Spark 的 Scheduler 擴展)。設計

5、YuniKorn 架構設計

YuniKorn 的其中一個設計目標是將調度程序與下面的資源管理系統分離,爲此,YuniKorn建立了一個定義通訊協議的通用調度程序接口。經過利用它,scheduler-core 和 shim 一塊兒工做來處理調度請求。關於 YuniKorn 架構設計,以下所示:htm

yk.jpeg

6、YuniKorn 的調度功能特性

如下是 YuniKorn 目前支持的調度功能列表:

(1)調度功能支持批處理做業和長期運行 / 有狀態服務

(2)具備最小 / 最大資源配額的分層池 / 隊列

(3)隊列,用戶和應用程序之間的資源公平性

(4)基於公平性的跨隊列搶佔

(5)自定義資源類型(如 GPU)調度支持

(6)豐富的編排約束支持

(7)根據策略自動將傳入的容器請求映射到隊列

(8)對節點使用專用配額 / ACL 管理將大的集羣拆分紅若干子羣集

 

7、參考

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

原文出處:https://www.cnblogs.com/nanfeng99/p/11220143.html

相關文章
相關標籤/搜索