云原生批量计算平台 Volcano 监控设计原理解读
Posted 金科优源汇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生批量计算平台 Volcano 监控设计原理解读相关的知识,希望对你有一定的参考价值。
Volcano 是一个 Kubernetes 云原生的批量计算平台,也是 CNCF 的首个批量计算项目。
Volcano 方便 AI,大数据,基因,渲染等诸多行业通用计算框架介入,提供高性能任务调度引擎,高性能异构芯片管理,高性能任务运行管理等能力。
监控目标态设计
为 AI 调度系统开发监控的目的
随着集群规模的扩张和调度规模的变大,调度效率和调度公平性的追求就不会停下。
Volcano 社区展开了长时间的开发,快速的功能迭代,插件逐步增加,这时候在合适的场景下使用合适的插件就变得比较重要,这时候需要选用合适的指标来做性能和公平性评估,来评估当前运行状态是否能满足需求,是否需要对插件进行调整。
在多租户的场景下,对不同租户资源使用的规划,计量和管控需求日益凸显,因此需要对多租户进行租户级资源监控和公平性检查。
根据用户运行时间和在各个插件中的调度时间,判断出用户的使用场景,根据使用场景自动配置插件,实现智能调度。
监控目标
通过定义性能指标 ,定量检测调度系统的性能,指导开发并且评测出针对不同环境的插件配置建议和解决方案,并且给出评判标准。
通过监测系统以及租户资源使用情况,方便管理员进行协调管理
对监控数据做样本分析和特征分析,训练最佳调度插件模型,通过性能数据来修正误差更新模型,逐步完成智能调度。
监控基础指标设计
监控架构设计
目前在 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 -f installer/volcano-monitoring-latest.yaml
离线部署需要的额外工作
检查生成好的 installer/volcano-monitoring-latest.yaml 文件,下载 yaml 中的所有 image,推送到离线环境中的镜像仓库,并且修改所有 image 字段指向离线仓库。
如何使用
-
登录 Volcano 的监控面板
在 Kubernetes 集群中用管理员账号获取当前 Volcano 监控 Namespace 中的 service 信息,可以看到 grafana 的 NodePort 是 30004,在集群中任意 Node 节点上访问 30004 端口即可看到 Grafana 的界面。
第一次登录需要输入默认用户名和密码 admin/admin,后续需要重新设置新密码,设置完成新密码,选择 Volcano Overview Dashboard。
-
Volcano Job 延迟热力图 / Volcano Job 调度延迟排名
通过 Volcano Legency Heatmap 可以看到当前 Job 延时发生的具体情况,在集群被打满的情况下,延时很容易快速达到 16 秒以上,如果当前集群申请的资源没有满,那么可能是没有配置合理的插件导致的。
通过 Volcano Job Scheduling Legecny 可以看到当前运行比较长的 Vocalno Job 运行时间长度,通过比对 Scheduler 日志,可以逐步找到相应的原因,并且调整插件来优化这个过程。
Volcano 公平性数据
Job Scheduling Coefficient Of Variation 是 Volcano 监控的公平性指标,展示了不同 Job 调度时间长度之间的差异值,目前的插件策略下,是相对比较极端的,部分 Job 在非常短的时间内被调度完成,剩余的时间比较长。
Volcano 调度效率数据
通过 Volcano 调度效率数据,可以看到整体集群的资源申请 request 情况,通过 Node Resource Coefficient Of Variation 可以看到不同节点之间的资源分布情况。
当前社区进度及未来展望
当前 Volcano 的性能监控指标 KPI 并没有完整到可以支撑做样本和特征分析,为了实现最终的智能调度,现分为以下三个阶段实现。
通过定义性能指标 ,定量检测调度系统的性能,指导开发并且评测出针对不同环境的插件配置建议和解决方案,并且给出评判标准。
通过监测系统以及租户资源使用情况,方便管理员进行协调管理
对监控数据做样本分析和特征分析,训练最佳调度插件模型,通过性能数据来修正误差更新模型,逐步完成智能调度。
目前社区的开发聚焦在阶段一和阶段二上,该部分的实现主要由建信金融科技的开阳云团队基于金融行业的云原生实践经验提炼并贡献给 Volcano 社区,后续等完成调度性能评估标准以及租户资源监控后,我们将会提炼特征帮助社区共同推进第三阶段智能调度的实现。
作者简介:
猜你喜欢
以上是关于云原生批量计算平台 Volcano 监控设计原理解读的主要内容,如果未能解决你的问题,请参考以下文章
重磅!业界首个云原生批量计算项目Volcano正式晋级为CNCF孵化项目
Volcano 社区 v1.7.0 版本正式发布 | 云原生批量计算
Volcano 社区 v1.7.0 版本正式发布 | 云原生批量计算