当前位置: 首页 > news >正文

Volcano——配置理解

Volcano配置

apiVersion: v1
kind: ConfigMap
metadata:name: volcano-scheduler-configmapnamespace: volcano-system
data:volcano-scheduler.conf: |actions: "enqueue, allocate, backfill"tiers:- plugins:- name: priority- name: gang- name: conformance- plugins:- name: drf- name: predicates- name: proportion- name: nodeorder- name: binpack

actions

actions表示调度需要执行的动作。

Volcano每次调度会创建一个session,并按actions中配置的动作依次执行。

每个action里都设定好了执行逻辑,里面会调用session上的处理函数(xxxFn),这些函数都是由各个插件添加的。执行顺序参考tiers的配置。

// runOnce executes a single scheduling cycle. This function is called periodically
// as defined by the Scheduler's schedule period.
func (pc *Scheduler) runOnce() {klog.V(4).Infof("Start scheduling ...")scheduleStartTime := time.Now()defer klog.V(4).Infof("End scheduling ...")pc.mutex.Lock()actions := pc.actionsplugins := pc.pluginsconfigurations := pc.configurationspc.mutex.Unlock()// Load ConfigMap to check which action is enabled.conf.EnabledActionMap = make(map[string]bool)for _, action := range actions {conf.EnabledActionMap[action.Name()] = true}ssn := framework.OpenSession(pc.cache, plugins, configurations)defer func() {framework.CloseSession(ssn)metrics.UpdateE2eDuration(metrics.Duration(scheduleStartTime))}()for _, action := range actions {actionStartTime := time.Now()action.Execute(ssn)metrics.UpdateActionDuration(action.Name(), metrics.Duration(actionStartTime))}
}

tiers

上面配置中的tiers里有两个数组,在每个action里执行插件处理的时候,会按照tiers里定义的数组顺序以及组里插件顺序进行。

Volcano代码示例:

func (ssn *Session) JobOrderFn(l, r interface{}) bool {for _, tier := range ssn.Tiers {for _, plugin := range tier.Plugins {if !isEnabled(plugin.EnabledJobOrder) {continue}jof, found := ssn.jobOrderFns[plugin.Name]if !found {continue}if j := jof(l, r); j != 0 {return j < 0}}}// If no job order funcs, order job by CreationTimestamp first, then by UID.lv := l.(*api.JobInfo)rv := r.(*api.JobInfo)if lv.CreationTimestamp.Equal(&rv.CreationTimestamp) {return lv.UID < rv.UID}return lv.CreationTimestamp.Before(&rv.CreationTimestamp)
}

 

http://www.hskmm.com/?act=detail&tid=20109

相关文章:

  • 国标GB28181视频平台EasyGBS:强大的视频监控与一站式视频服务解决方案
  • 题解:AT_abc425_f [ABC425F] Inserting Process
  • [转]bat/cmd将命令执行的结果赋值给变量
  • 题解:P13507 [OOI 2024] Three Arrays
  • 题解:AT_abc424_f [ABC424F] Adding Chords
  • 如何在不同区域/网络环境下评估 reCAPTCHA 的表现 - 详解
  • 2025 年最新编织袋生产厂家权威推荐排行榜:聚焦 TOP5 优质企业,助力企业精准甄选可靠合作伙伴牛皮纸/塑料/PP彩膜/化工/化肥编织袋厂家推荐
  • P11854 [CSP-J2022 山东] 宴会
  • 2025 年试验机厂家权威推荐榜:TOP5 优质厂家综合实力解析,助力科研与工业客户精准选型电子万能材料/橡胶拉力/塑料拉力/扬州拉力试验机厂家推荐
  • win 系统安装
  • 2025 年节能咨询公司最新权威推荐排行榜:覆盖工业 / 建筑 / 数据中心等领域 TOP5 优质企业综合测评与选型指南发电厂/燃气/全域增效/服务器节能公司推荐
  • 微算法科技(NASDAQ MLGO)探索全同态加密与安全多方计算融合,开启区块链隐私执行新时代
  • 国产SUB-1G芯片DP4363F支持119-1050mhz超低功耗 - 动能世纪
  • 2025 年棕刚玉源头厂家最新推荐排行榜:TOP 级生产厂家原料与烧结工艺权威解析,助力企业精准选购一级棕刚玉/棕刚玉磨料/优质棕刚玉/棕刚玉喷砂废料回收厂家推荐
  • 杀疯了!GitHub 发布 Copilot CLI!!!
  • 2025 年无尘金刚砂源头厂家最新推荐排行榜:权威精选企业产能与品质深度解析无尘金刚砂材料/无尘金刚砂批发/无尘金刚砂喷砂厂家推荐
  • 学习率调整策略
  • PySide6 之简易音乐播放器
  • langgraph-genui
  • web服务器配置步骤有哪些?如何建立一个web服务器
  • 题解:P10005 [集训队互测 2023] 基础寄术练习题
  • 详细介绍:Linux----gcc、g++的使用以及一些问题
  • 同步和互斥的基本概念
  • Sep 28
  • 图像采集卡:连接镜头与机器的“视觉神经”,释放工业智能核心动力
  • 2025 年生态木厂商最新推荐榜单:TOP 前五企业实力解析及厂商选择指南生态木方通/户外地板/装饰线条/隔断/背景墙厂商推荐
  • 盲盒一番赏小应用用户需求分析:从行为动机到功能诉求的深度拆解
  • 解题报告-泥路(muddyroad.*)
  • 洛谷P10112 [GESP202312 八级] 奖品分配
  • P10400 『STA - R5』消失的计算机