K8S调度插件开发-go语言

合作方式 项目制
预估日薪 500
预估总价 1500元
预估工时 3天
发布位置 北京
可参与范围 全国远程
职位ID 155438
发布方 wang
wang

需求描述

• 应用场景:
系统中已部署好K8S,一个master两个worker,目前新建pod时会走默认调度器的逻辑。K8S版本1.22.7
需求:新增一个基于调度框架的调度插件,在score扩展点加入,在原有判断内存和CPU可用率基础上再增加对网络带宽剩余的判断(三个指标有权重),使用go语言编写一个插件文件并注册到调度框架中。需要自定义的是类似score扩展点的NodeResourcesBalancedAllocation
可参考git上原调度插件文件修改,实现效果即可:kubernetes/kubernetes/blob/release-1.22/pkg/scheduler/framework/plugins/noderesources/balanced_allocation.go

测试预期:集群中一个节点网络带宽占用较满,此时调度pod不会选择这个节点(最好在调度日志中能看到给节点的具体打分)
需确保脚本能注册到框架上并跑通,代码注释详细一点
评分逻辑简述:
capacity:节点总量 total:节点当前容器总占用量
节点资源剩余分数score1
cpuScore=[(capacituCPU-totalCPU)/capacityCPU]*100*0.2
memoryScore=[(capacituMemory-totalMemory)/capacityMemory]*100*0.3
ioScore=[(capacituIO-totalIO)/capacityIO]*100*0.5
score1=(cpuScore+memoryScore+ioScore)

节点资源平衡性分数score2
cpuFraction=[(capacituCPU-totalCPU)/capacityCPU]
memoryFraction=[(capacituMemory-totalMemory)/capacityMemory]
ioFraction=[(capacituIO-totalIO)/capacityIO]
mean=(cpuFraction+memoryFraction+ioFraction)/3
计算三种资源空闲率的标准差 std
score2 = (1-std)*100
最终评分 score = (score1+score2)/2

开发及部署步骤可参考网上K8s调度框架设计与调度插件开发部署相关文档

发布方信用行为

发布项目 2
订单总数 0
退款单数 0

完善简历

工程师完善技术能力和项目经验,更易接到订单

完善人才简历

发布任务

企业点击发布任务,工程师会在任务下报名,招聘专员也会在 1 小时内与您联系确认。