
【集群】云原生批调度实战:Volcano版本修改与性能测试优化

本系列《云原生批调度实战:Volcano 监控与性能测试》计划分为以下几篇,点击查看其它内容。
- 云原生批调度实战:调度器测试与监控工具 kube-scheduling-perf
- 云原生批调度实战:调度器测试与监控工具 kube-scheduling-perf 实操注意事项说明
- 云原生批调度实战:调度器测试监控结果
- 云原生批调度实战:本地环境测试结果与视频对比分析
- 监控与测试环境解析:测试流程拆解篇
- 监控与测试环境解析:指标采集与可视化篇
- 监控与测试环境解析:自定义镜像性能回归测试
- 监控与测试环境解析:数据收集方法深度解析与Prometheus Histogram误差问题
- 云原生批调度实战:Volcano调度器enqueue功能禁用与性能测试
- 云原生批调度实战:Volcano Pod创建数量不足问题排查与Webhook超时修复
- 云原生批调度实战:Volcano版本修改与性能测试优化
- 云原生批调度实战:Volcano Webhook禁用与性能瓶颈分析
💡简介
在本地环境测试结果与视频对比分析中,我们发现本地测试结果与KubeCon技术分享视频中的结果存在显著差异。虽然整体趋势基本一致,但在某些测试场景下,本地测试的CREATED事件曲线、SCHEDULED事件表现与视频预期不符。
通过深入分析,我们猜测这些差异可能源于Volcano调度器版本不同。视频中使用的可能是较新的版本(如1.12.0-alpha.0),而本地环境使用的是较旧版本(v1.11.0)。本文详细介绍了如何查看当前测试所用的Volcano版本,如何自动化升级到目标版本,以及如何验证版本升级的效果。
🔍问题回顾与分析
1. 本地测试与视频结果差异
1.1 差异现象总结
根据本地测试结果,我们发现了以下主要差异:
测试场景 | 视频预期 | 本地实际 | 差异分析 |
---|---|---|---|
10K Jobs × 1 Pod | YuniKorn吞吐量最高 | ✅ 符合预期 | 基本一致 |
500 Jobs × 20 Pods | CREATED阶段性突变 | ⚠️ 部分符合 | 可能版本差异 |
20 Jobs × 500 Pods | CREATED成为瓶颈 | ❌ 出现突变 | 瓶颈效应不明显 |
1 Job × 10K Pods | 调度速度平稳 | ❌ 出现突变 | 版本兼容性问题 |
1.2 差异原因猜测
基于测试结果分析,我们猜测差异可能源于:
- 调度器版本差异:本地使用v1.11.0,视频可能使用更新版本
- 性能优化差异:新版本可能包含重要的性能优化
- 算法改进差异:调度算法可能在新版本中有显著改进
- 配置默认值差异:新版本的默认配置可能更适合大规模测试
🔍如何查看测试所用的Volcano版本
1. 查看部署文件中的版本信息
1.1 直接查看配置文件
1 | # 查看admission webhook manager版本 |
1.2 批量查看所有版本
1 | # 一次性查看所有Volcano组件版本 |
输出示例:
1 | schedulers/volcano/volcano-admission/deployment.yaml: image: kind-registry:5000/docker.io/volcanosh/vc-webhook-manager:v1.11.0 |
2. 查看运行中的集群版本
2.1 检查已部署的Pod版本
1 | # 设置kubeconfig |
2.2 查看ConfigMap中的配置
1 | # 查看调度器配置 |
3. 版本信息汇总
通过上述方法,我们确认了当前环境使用的Volcano版本:
组件 | 当前版本 | 镜像名称 |
---|---|---|
Webhook Manager | v1.11.0 | volcanosh/vc-webhook-manager:v1.11.0 |
Scheduler | v1.11.0 | volcanosh/vc-scheduler:v1.11.0 |
Controller Manager | v1.11.0 | volcanosh/vc-controller-manager:v1.11.0 |
🚀如何自动化升级Volcano版本
1. 目标版本选择
我们选择升级到v1.12.0-alpha.0
,原因主要是KubeCon视频中说明使用了该版本。推测新版本中可能包含性能改进、旧版本中可能存在部分bug被修复,甚至调度算法可能也有所更新。
2. 版本升级脚本
2.1 批量替换版本
如果不想使用脚本,也可以手动执行:
1 | # 备份原文件 |
3.2 逐个文件修改
也可以逐个文件进行修改:
1 | # 修改admission webhook |
✅验证版本升级效果
1. 配置文件验证
1.1 检查版本是否已更新
1 | # 验证所有文件是否已更新 |
1.2 检查文件完整性
1 | # 检查是否有遗漏的文件 |
2. 部署验证
2.1 重新部署Volcano
1 | # 清理旧环境 |
2.2 验证Pod镜像版本
1 | # 设置kubeconfig |
期望输出:所有Pod都应该显示v1.12.0-alpha.0
版本
2.3 检查服务状态
1 | # 检查所有Pod状态 |
- 希望这篇博客对你有帮助!如果你有任何问题或需要进一步的帮助,请随时提问。
- 如果你喜欢这篇文章,欢迎动动小手给我一个follow或star。
🗺参考文献
[1] Github - kube-scheduling-perf
[3] Volcano Documentation - Version Compatibility
- 标题: 【集群】云原生批调度实战:Volcano版本修改与性能测试优化
- 作者: Fre5h1nd
- 创建于 : 2025-08-20 01:25:19
- 更新于 : 2025-08-21 19:56:54
- 链接: https://freshwlnd.github.io/2025/08/20/k8s/k8s-scheduler-performance-volcano-version/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
推荐阅读
评论