写点什么

Volcano 监控设计解读,一看就懂

发布于: 2021 年 01 月 28 日

摘要:Volcano 方便 AI,大数据,基因,渲染等诸多行业通用计算框架介入,提供高性能任务调度引擎,高性能异构芯片管理,高性能任务运行管理等能力。


Volcano 是一个 Kubernetes 云原生的批量计算平台,也是 CNCF 的首个批量计算项目。


Volcano 方便 AI,大数据,基因,渲染等诸多行业通用计算框架介入,提供高性能任务调度引擎,高性能异构芯片管理,高性能任务运行管理等能力。


监控目标态设计


为 AI 调度系统开发监控的目的


  1. 随着集群规模的扩张和调度规模的变大,调度效率和调度公平性的追求就不会停下。

  2. Volcano 社区展开了长时间的开发,快速的功能迭代,插件逐步增加,这时候在合适的场景下使用合适的插件就变得比较重要,这时候需要选用合适的指标来做性能和公平性评估,来评估当前运行状态是否能满足需求,是否需要对插件进行调整。

  3. 在多租户的场景下,对不同租户资源使用的规划,计量和管控需求日益凸显,因此需要对多租户进行租户级资源监控和公平性检查。

  4. 根据用户运行时间和在各个插件中的调度时间,判断出用户的使用场景,根据使用场景自动配置插件,实现智能调度。


监控目标


  1. 通过定义性能指标 ,定量检测调度系统的性能,指导开发并且评测出针对不同环境的插件配置建议和解决方案,并且给出评判标准。

  2. 通过监测系统以及租户资源使用情况,方便管理员进行协调管理

  3. 对监控数据做样本分析和特征分析,训练最佳调度插件模型,通过性能数据来修正误差更新模型,逐步完成智能调度。


监控基础指标设计


image


监控架构设计


image


目前在 Volcano 中引入了三个监控组件,Kube State Metrics,Prometheus 以及 Grafana。


在 Kubernetes 体系中传统数值类时序数据一般是由 Prometheus 来管理的,状态类信息和配置类信息都是存在 etcd 里的,但是有时候需要配合起来完成监控目标,因此就需要将状态类数据和配置数据导入 Prometheus,Kube State Metrics 实现了一个标准的 Prometheus Exporter 来从 API Server 获取状态数据以及字段配置数据,协助完成状态数据和时序数据的统一管理。


Grafana 中我们初始化 Provision 了一个 Volcano Overview Dashboard,这个 Dashboard 包含了 Volcano 的全局监控信息,包括 Volcano 的公平性数据以及调度有效性数据。


在 Volcano 上部署监控套件


在线部署


make generate-yaml TAG=latest RELEASE_DIR=installer


kubectl create -finstaller/volcano-monitoring-latest.yaml


离线部署需要的额外工作


检查生成好的 installer/volcano-monitoring-latest.yaml 文件,下载 yaml 中的所有 image,推送到离线环境中的镜像仓库,并且修改所有 image 字段指向离线仓库。


如何使用


登录 Volcano 的监控面板


image


在 Kubernetes 集群中用管理员账号获取当前 Volcano 监控 Namespace 中的 service 信息,我们可以看到 grafana 的 NodePort 是 30004,在集群中任意 Node 节点上访问 30004 端口即可看到 Grafana 的界面。


第一次登录需要输入默认用户名和密码 admin/admin,后续需要重新设置新密码,设置完成新密码,选择 Volcano Overview Dashboard。


Volcano Job 延迟热力图 / Volcano Job 调度延迟排名


image


通过 Volcano Legency Heatmap 我们可以看到当前 Job 延时发生的具体情况,在集群被打满的情况下,延时很容易快速达到 16 秒以上,如果当前集群申请的资源没有满,那么可能是没有配置合理的插件导致的。


image


通过 Volcano Job Scheduling Legecny 我们可以看到当前运行比较长的 Vocalno Job 运行时间长度,通过比对 Scheduler 日志,我们可以逐步找到相应的原因,并且调整插件来优化这个过程。


Volcano 公平性数据


image


Job Scheduling Coefficient Of Variation 是 Volcano 监控的公平性指标,展示了不同 Job 调度时间长度之间的差异值,目前的插件策略下,是相对比较极端的,部分 Job 在非常短的时间内被调度完成,剩余的时间比较长。


Volcano 调度效率数据


image


通过 Volcano 调度效率数据,我们可以看到整体集群的资源申请 request 情况,通过 Node Resource Coefficient Of Variation 我们可以看到不同节点之间的资源分布情况。


当前社区进度及未来展望


当前 Volcano 的性能监控指标 KPI 并没有完整到可以支撑我们做样本和特征分析,为了实现最终的智能调度,现分为以下三个阶段实现。


  1. 通过定义性能指标 ,定量检测调度系统的性能,指导开发并且评测出针对不同环境的插件配置建议和解决方案,并且给出评判标准。

  2. 通过监测系统以及租户资源使用情况,方便管理员进行协调管理

  3. 对监控数据做样本分析和特征分析,训练最佳调度插件模型,通过性能数据来修正误差更新模型,逐步完成智能调度。


点击关注,第一时间了解华为云新鲜技术~


发布于: 2021 年 01 月 28 日阅读数: 34
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
Volcano 监控设计解读,一看就懂