跳转到文档内容

HAMi WebUI 正式发布:Kubernetes GPU 监控仪表盘

作者: HAMi 社区
发布时间: 2026/4/13

在 Kubernetes 中管理 GPU 资源,长期以来存在一个"盲区"。你知道 GPU 在被使用,但要回答"哪个节点还有空闲?"、"这个工作负载是否真的在用分配到的 GPU?"、"集群整体 GPU 利用率趋势如何?"这些问题,往往需要在 kubectl get、Prometheus PromQL 和日志输出之间反复切换。

今天,HAMi 社区正式推出 HAMi WebUI —— 一款将整个 GPU 集群呈现在单一可视化界面中的开源 GPU 监控仪表盘。

HAMi WebUI v1.1.0 现已作为首个正式主要版本发布,邀请你试用。

与 HAMi 核心调度器配合,WebUI 实现了完整的闭环:从 GPU 调度到可视化可观测性

Kubernetes GPU 监控的挑战

HAMi 作为 CNCF Sandbox 项目,长期聚焦于 Kubernetes 中 GPU 资源的调度与管理层。调度器决定工作负载分配到哪张 GPU —— 但工作负载运行起来之后,资源层面到底在发生什么,一直缺乏直观的洞察手段。

想一想日常运维中常见的场景:

  • 团队负责人想知道集群是否还有余量调度新的训练任务
  • SRE 收到 GPU 显存使用率告警,需要快速定位到具体的节点和工作负载
  • 集群管理员希望对比各节点 GPU 利用率,进行工作负载重均衡

没有可视化工具时,每个任务都需要在多个终端窗口之间切换,手动拼凑不同来源的数据。HAMi WebUI 正是为解决这个问题而生 —— 它是一款专为 Kubernetes 打造的 GPU 监控仪表盘

HAMi WebUI 是什么

HAMi WebUI 是 HAMi 生态中的可视化组件。HAMi 负责 GPU 资源调度和管理,WebUI 负责数据展示和用户交互

它以 GPU 资源为中心,提供统一的 GPU 监控体验,帮助运维人员:

  • 一目了然地掌握 GPU 集群状态
  • 分析 GPU 利用率模式与趋势
  • 快速定位问题,优化 GPU 资源分配

架构

HAMi WebUI 采用前后端分离架构,分为三层:

HAMi WebUI 架构 - Kubernetes GPU 监控仪表盘

层级技术栈职责
客户端Vue 3 SPA + Axios浏览器端仪表盘 UI
前端代理NestJS (BFF)静态资源托管 + API 反向代理
后端Go (Kratos 框架)API 服务,查询 Prometheus 获取 GPU 指标数据

前端通过统一的 /api/vgpu/* 端点与后端通信,由 NestJS BFF 层进行代理转发。GPU 指标数据来源于 Prometheus,由其从 HAMi 管理的节点上采集 GPU 使用遥测数据。

核心 GPU 监控功能

集群总览

集群总览页面提供了集群运行状态的快速概览,包括 GPU 资源使用率、节点状态和关键指标趋势,支持时间范围筛选。

HAMi WebUI 集群总览仪表盘,展示 GPU 资源使用情况

关键指标支持下钻导航——例如,点击"可调度"可以直接跳转到节点管理页面并按该状态筛选。在一个页面上即可掌握 GPU 集群全局状态。

节点管理

节点级别视图展示每个节点的 GPU 分配和使用情况,以及工作负载分布。帮助运维人员对比不同节点的 GPU 资源使用情况,识别不均衡。

HAMi WebUI 节点列表,展示各节点 GPU 分配与工作负载分布

在节点详情页面,可以进一步查看该节点的 GPU 使用情况和任务分布,更好地理解负载分布。

GPU/加速器管理

从加速器视角,WebUI 支持对每张 GPU 卡的细粒度查看——包括分配状态、利用率、显存使用和所属节点。

HAMi WebUI 加速器列表,展示各 GPU 分配、利用率和显存使用

帮助你了解集群中 GPU 计算和显存资源的分配与消耗情况。

工作负载追踪

从工作负载视角,运维人员可以查看每个工作负载的 GPU 使用率、资源分配详情和运行时状态,便于将工作负载行为与集群 GPU 资源消耗关联分析。

HAMi WebUI 工作负载列表,展示�各工作负载 GPU 使用与资源分配

适合谁用?

HAMi WebUI 面向所有与 HAMi 管理的 GPU 集群交互的角色:

  • 集群管理员 — 需要全局视角了解 GPU 资源健康度和利用率
  • 平台工程师 — 排查 GPU 资源分配问题,优化集群效率
  • AI/ML 团队负责人 — 希望了解训练和推理工作负载的 GPU 消耗情况
  • SRE — 需要快速获取 GPU 指标,辅助监控和告警研判

快速开始

使用 Helm 部署 HAMi WebUI 非常简单。你需要:

  • HAMi >= 2.4.0
  • Prometheus > 2.8.0
  • Helm > 3.0
# 添加 Helm 仓库
helm repo add hami-webui https://project-hami.github.io/HAMi-WebUI

# 安装 HAMi WebUI
helm install my-hami-webui hami-webui/hami-webui \
--set externalPrometheus.enabled=true \
--set externalPrometheus.address="http://<你的-prometheus-服务>:9090" \
-n kube-system

# 端口转发访问 UI
kubectl port-forward service/my-hami-webui 3000:3000 --namespace=kube-system

然后在浏览器中打开 http://localhost:3000

详细说明请参阅 HAMi WebUI 安装指南

文档

HAMi 社区准备了完善的文档体系:

  • WebUI 用户指南 — 了解如何使用集群总览、节点管理、GPU 管理和工作负载追踪功能。
  • WebUI 开发者指南 — 了解项目架构、代码仓库结构、本地开发环境和编码规范,参与 WebUI 贡献。

参与贡献

HAMi WebUI 是一个活跃发展的项目。v1.1.0 已带来国际化支持(中英文双语)、多架构容器镜像以及更广泛的设备厂商兼容性。

我们欢迎各种形式的贡献——Bug 修复、功能建议、文档改进和新想法。查看 HAMi-WebUI 代码仓库开发者指南 开始参与。

查看 v1.1.0 release notes 了解完整更新内容。

相关链接:

CNCFHAMi 是 CNCF Sandbox 项目