Volcano社群已正式釋出v1.2.0版本。此次釋出的1.2版本關鍵特性為支援TDM和SLA外掛。
Volcano v1.2 關鍵特性介紹
SLA外掛SLA(Service Level Agreement)外掛支援使用者透過為作業定義最大預期等待時長的方式來進行排程優先順序排序。
使用者可以對單個作業打上名為“sla-waiting-time”的annotation,定義最大預期等待時長。equeue action和allocate action將比較作業的實際等待時長和最大預期等待時長的關係。若已超時,該作業將被直接被標記為“piplined”的狀態,獲取優先分配資源的權利。JobOrderFn中會根據作業實際等待時間和最大預期等待時間的差值,決定作業排程的排序。
例1 作業的SLA定義
apiVersion: batch.volcano.sh/v1alpha1kind: Jobmetadata: annotations: sla-waiting-time: 1h2m3s // 定義作業最大等待時長為1h2m3s
例2 全域性定義作業SLA
使用者也可以透過在scheduler的配置檔案中定義全域性SLA的方式,為所有作業配置SLA。
actions: "enqueue, allocate, backfill" tiers:- plugins:- name: priority- name: gang- name: slaarguments:sla-waiting-time: 1h2m3s // 全域性定義作業SLA
SLA外掛的實現是對v1.1.0版本中作業資源預留特性設計的最佳化。點此檢視該特性的詳細設計和實現。
TDM外掛TDM(Time Division Multiplexing)外掛的使用場景為:某些節點同時屬於Kubernetes叢集和Yarn叢集,且被分時複用。
為了滿足該場景,可提前為複用節點打上“volcano.sh/revocable-zone”標籤,並在scheduler配置檔案中配置分用時段。打上“volcano.sh/preemptable: true”標籤的作業,其所屬的Pod也將整合該標籤。這類Pod將被優先排程到複用節點上。當複用節點的管理權在叢集層面進行切換時(分用時段到期),複用節點上的負載將被驅逐,騰空後的節點納入到新叢集中。
例3 TDM外掛在scheduler中的配置
tiers: - plugins: - name: tdm arguments: tdm.revocable-zone.rz1: 1:00-4:00 tdm.evict.period: 1m
其他特性
v1.2.0還新增了和系統穩定性、使用者體驗、效能最佳化有關的一些特性,如重構了overcommit外掛、當作業更新時同時更新ssh secret、優化了nodeorder外掛等。
詳情檢視 https://github.com/volcano-sh/volcano/releases/tag/v1.2.0。
關於 VolcanoVolcano 是基於 Kubernetes 構建的批次計算平臺,源自於華為雲 AI 容器,提供作業管理、批次排程、依賴管理、資源預留等能力,支援包括 TensorFlow、Spark、MPI、Slurm 在內的多個業界主流計算框架,主要幫助使用者將 AI、大資料等資源消耗波動大、計算密集型的業務從傳統的 Batch、HPC 系統快速遷移到雲原生。Volcano 也是 CNCF 首個和唯一的容器批次計算專案。