3、中央仪表盘:Central Dashboard 的功能解析与自定义配置
说实话,很多刚接触 Kubeflow 的朋友,第一眼看到 Central Dashboard 时,会觉得它就是个「花架子」—— 不就是个 Web 页面嘛,能有多重要?
我刚开始也这么想。直到有一次,团队里新来的同事问我:「咱们的 Pipeline 跑完了,去哪里看结果?」我才意识到,这个仪表盘其实是整个 Kubeflow 的「交通枢纽」。你想想看,没有它,你连门都摸不着。
3.1 仪表盘到底能干什么?
Central Dashboard 说白了,就是 Kubeflow 的统一入口。它把分散的组件整合到一个界面上。我个人习惯把它分成三个核心功能:
- 导航中枢:快速跳转到 Notebook、Pipeline、Katib 等组件
- 资源概览:查看集群状态、命名空间、运行中的工作负载
- 用户管理:多租户环境下,控制不同用户的访问权限
嗯,这里要注意一点。仪表盘本身不执行任何计算任务,它只是个「调度员」。真正干活的是背后的各个组件。
3.2 界面布局与核心模块
登录进去后,你会看到左侧的导航栏。我把它拆解成几个关键区域:
| 区域 | 功能 | 我的使用建议 |
|---|---|---|
| 顶部导航 | 切换命名空间、全局搜索 | 多项目时,先选对命名空间再操作 |
| 左侧菜单 | 组件入口列表 | 可以拖拽排序,把常用的放前面 |
| 主内容区 | 显示当前组件的详情 | 支持 iframe 嵌入,灵活性很高 |
| 底部状态栏 | 显示集群健康度 | 我曾经忽略这里,结果磁盘爆了才发现 |
为什么要把命名空间放在这么显眼的位置?因为 Kubeflow 的多租户机制就是靠命名空间隔离的。你选错了命名空间,看到的 Notebook 和 Pipeline 可能完全是另一套。
3.3 自定义配置:让仪表盘更顺手
默认的仪表盘其实够用,但如果你像我一样,每天要在多个项目间切换,那自定义配置就很有必要了。
3.3.1 修改菜单项
你可以通过修改 ConfigMap 来调整左侧菜单。举个例子:
apiVersion: v1
kind: ConfigMap
metadata:
name: centraldashboard-config
namespace: kubeflow
data:
links: |
{
"menuLinks": [
{
"type": "item",
"link": "/pipeline/",
"text": "流水线",
"icon": "workflow"
},
{
"type": "item",
"link": "/notebook/",
"text": "笔记本",
"icon": "book"
}
],
"externalLinks": [
{
"type": "item",
"link": "https://your-docs.com",
"text": "内部文档",
"icon": "help"
}
]
}
改完之后,执行 kubectl apply -f config.yaml 再刷新页面就能看到效果。我曾经把团队常用的几个工具链接直接加进去,省去了每次翻书签的麻烦。
3.3.2 调整默认命名空间
如果你大部分时间只用一个命名空间,可以设置默认值:
kubectl edit deployment centraldashboard -n kubeflow
# 在环境变量中添加:
# - name: DASHBOARD_DEFAULT_NAMESPACE
# value: "your-namespace"
这样每次登录,仪表盘会自动选中你的常用命名空间。别小看这个改动,一天省下几十次点击,积少成多。
3.4 避坑指南:我踩过的几个坑
⚠️ 我曾经犯过的错:
- 直接修改了
centraldashboard的 Deployment 镜像版本,结果仪表盘起不来。后来发现版本要和 Kubeflow 主版本匹配。 - 在 ConfigMap 里写了错误的 JSON 格式,整个菜单加载失败。建议改完后先
kubectl describe configmap检查一下。 - 忘了给外部链接加上
https://前缀,点击后跳转到奇怪地址。嗯,这种低级错误我犯过两次。
3.5 核心架构图
下面这张图,是我自己梳理的 Central Dashboard 与各组件的交互关系。你看一眼就能明白它的定位:
从这张图能看出来,仪表盘处于用户和底层资源之间。它不直接操作 K8s API,而是通过各个组件的接口来转发请求。这种设计的好处是:你可以在不接触底层集群的情况下,完成大部分日常操作。
3.6 实用技巧:让仪表盘更好用
💡 我常用的几个小技巧:
- 快捷键:按
Ctrl + K可以快速搜索组件,比用鼠标点快多了 - 收藏功能:把最常用的 Pipeline 或 Notebook 添加到收藏夹,首页直接访问
- 多标签页:按住 Ctrl 点击菜单项,可以在新标签页打开,方便对比查看
- 自定义 Logo:修改 ConfigMap 里的
branding字段,可以换成公司 Logo
3.7 监控仪表盘状态
仪表盘本身也是跑在 K8s 上的 Pod。我建议你定期检查它的健康状态:
# 查看 Pod 状态
kubectl get pods -n kubeflow | grep centraldashboard
# 查看日志
kubectl logs -n kubeflow deployment/centraldashboard
# 检查端口是否正常
kubectl port-forward -n kubeflow svc/centraldashboard 8080:80
有一次我发现仪表盘加载特别慢,查了半天,原来是背后的 Istio 网关出了问题。所以当你觉得仪表盘卡顿时,别急着怪它,先看看依赖的组件是否正常。
好了,关于 Central Dashboard 的核心功能和自定义配置,就聊到这里。记住一点:仪表盘是你的「驾驶舱」,花点时间把它调教顺手,后面的工作会事半功倍。
公众号:蓝海资料掘金营,微信deep3321