职位ID:155438

K8S调度插件开发-go语言

  • 合作方式:
  • 项目制 全国远程
  • 预估日薪:
  • 500
  • 预估总价:
  • 1500元
  • 预估工时:
  • 3天
  • 所在区域:
  • 全国远程

需求描述

• 应用场景:
系统中已部署好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小时内与您联系,1小时内精准确定人才

微信客服

需求方请加需求方端客服沟通需求,工程师请加工程师端客服浏览推送职位

需求方端客服
工程师端客服
联系需求方端客服