基础组件介绍

想知道平台由哪些基础组件构成、各组件在哪个命名空间、用的哪个版本/开源协议、依赖关系与配置位置时读这篇

01-架构原理 / 基础组件
基础组件命名空间namespace组件清单开源软件版本开源协议licenseredismysqlpostgresqlkubernetes-dashboardmetrics-scrapernvidia-device-pluginhamivgpurdma

基础组件介绍

平台基础架构

基础架构

完整的平台包含:

  1. 机器的标准化;
  2. 分布式存储(单机可忽略)、k8s 集群、监控体系(prometheus/grafana);
  3. 基础能力(tf/pytorch/mxnet/volcano/ray 等分布式,nni/ray 超参搜索);
  4. 平台 web 部分(oa/权限/项目组、在线构建镜像、在线开发、pipeline 拖拉拽、超参搜索、推理服务管理等)。

组件说明(命名空间 - 组件对照)

命名空间 组件名 组件说明
infra kubeflow-dashboard-frontend CubeStudio 平台的 web 前端,提供静态文件的访问
infra kubeflow-dashboard CubeStudio 平台的 web 后端,提供后端 api 的访问
infra kubeflow-dashboard-schedule 调度 CubeStudio 系统自带的调度任务,比如定时清理
infra kubeflow-dashboard-worker 执行 CubeStudio 系统自带的调度任务,比如定时清理
infra kubeflow-watch 监控 CubeStudio 平台中的任务,发起通知和信息更新
infra mysql 平台元数据的存储
infra redis 平台缓存,和异步任务对接
kube-system kubernetes-dashboard-cluster k8s 中 pod 的管理界面
kube-system dashboard-cluster-metrics-scraper k8s pod 管理界面上的 pod 资源使用情况插件
kube-system nvidia-device-plugin-daemonset k8s 中使用机器 gpu 驱动和设备的插件
kube-system hami-daemonset k8s 中使用机器 gpu 虚拟化驱动和设备的插件
kube-system rdma-shared-dp-ds k8s 中使用机器 rdma 网络和设备的插件
kube-system metrics-server 集群资源使用情况的指标采集,用于 hpa
kube-system kubeflow-prometheus-adapter 将 prometheus 采集的指标转化为可用于 hpa 的指标
kubeflow labelstudio 标注平台
kubeflow postgres postgres 数据库,labelstudio 平台的元数据存储
kubeflow train-operator tf/pytorch/xgb/mxnet/mpi 等分布式训练 operator
kubeflow workflow-controller argo 云原生调度
kubeflow minio 对象存储
kubeflow volcano-* volcano 分布式和批调度
istio-system istio-ingressgateway 入口网关,代理所有外部访问
istio-system 其他 istio 基础组件
monitoring dcgm-exporter gpu 机器资源监控
monitoring node-exporter cpu 机器资源监控
monitoring prometheus-k8s 监控数据存储服务
monitoring grafana 监控数据可视化
jupyter docker-* 用户创建的在线构建镜像的 pod
jupyter 其他 用户创建的在线 notebook
service 全部 用户创建的内部服务和推理服务
pipeline 全部 用户创建的 pipeline 任务
automl 全部 用户创建的超参数搜索任务

说明:volcano 在本仓库的 install/kubernetes/volcano/volcano-development.yaml 中部署到 kubeflow 命名空间;另有 install/README.md 中将其标注为 volcano-system,以实际部署清单为准。

对开源软件的修改情况(版本与协议)

下表版本已对照 install/kubernetes/all_image.py 与各组件部署 yaml 核实,并标注纠正项。

序号 名称 版本 软件类型 是否修改 开源协议 协议地址
1 Redis 7.4 开源软件 未修改,官方镜像商用 BSD-3-Clause https://github.com/redis/redis
2 Kubernetes Dashboard v2.6.1 开源软件 未修改,官方镜像商用 Apache-2.0 https://github.com/kubernetes/dashboard
3 NVIDIA Device Plugin v0.17.1 开源软件 未修改,官方镜像商用 Apache-2.0 https://github.com/NVIDIA/k8s-device-plugin
4 Hami v2.8.0 开源软件 未修改,官方镜像商用 Apache-2.0 https://github.com/Project-HAMi/HAMi
5 RDMA Shared DP DS v1.5.1 开源软件 未修改,官方镜像商用 Apache-2.0 https://github.com/Mellanox/k8s-rdma-shared-dev-plugin
6 Prometheus Adapter v0.9.1 开源软件 未修改,官方镜像商用 Apache-2.0 https://github.com/kubernetes-sigs/prometheus-adapter
7 Training Operator v1-8a066f9 开源软件 未修改,官方镜像商用 Apache-2.0 https://github.com/kubeflow/training-operator
8 Workflow Controller v3.4.3 开源软件 未修改,官方镜像商用 Apache-2.0 https://github.com/argoproj/argo-workflows
9 MinIO RELEASE.2023-04-20T17-56-55Z 开源软件 未修改,官方镜像商用 AGPL-3.0 https://github.com/minio/minio
10 Volcano v1.14.0 开源软件 未修改,官方镜像商用 Apache-2.0 https://github.com/volcano-sh/volcano
11 Istio 1.15.0 开源软件 未修改,官方镜像商用 Apache-2.0 https://github.com/istio/istio
12 DCGM Exporter 3.1.7-3.1.4 开源软件 未修改,官方镜像商用 Apache-2.0 https://github.com/NVIDIA/dcgm-exporter
13 Node Exporter v1.5.0 开源软件 未修改,官方镜像商用 Apache-2.0 https://github.com/prometheus/node_exporter
14 Prometheus v2.27.1 开源软件 未修改,官方镜像商用 Apache-2.0 https://github.com/prometheus/prometheus
15 Grafana 9.5.20 开源软件 未修改,官方镜像商用 AGPL-3.0 https://github.com/grafana/grafana
16 PostgreSQL 11.5 开源软件 未修改,官方镜像商用 PostgreSQL https://www.postgresql.org/about/licence/
17 Label Studio 见下方待核实 开源软件 部分修改 Apache-2.0 https://github.com/HumanSignal/label-studio

⚠️ 已按代码纠正:

  • Grafana:原文写 9.1.5,实际镜像为 grafana/grafana:9.5.20install/kubernetes/all_image.pyinstall/kubernetes/prometheus/grafana/grafana-dp.yml)。
  • Volcano:原文「基础组件依赖」小节写 1.7.0,实际镜像为 volcanosh/vc-webhook-manager:v1.14.0install/kubernetes/volcano/volcano-development.yaml),与本表 1.14.0 一致,已统一为 v1.14.0。

⚠️ 待核实:Label Studio 版本。原文表与依赖小节均写 1.13.2,但 install/kubernetes/labelstudio/labelstudio.yaml:40 实际使用自定义镜像 tag ccr.ccs.tencentyun.com/cube-studio/label-studio:20260701,行内注释为 heartexlabs/label-studio:1.10.1。具体基线版本请确认。

基础组件依赖

mysql / postgresql

  • 版本:mysql 8.0.32install/kubernetes/mysql/deploy.yaml)、postgres 11.5
  • 功能:CubeStudio 的基础元数据存储;
  • 依赖关系:CubeStudio 自研 pod(infra/kubeflow-dashboard-* 的 pod)依赖数据库;企业自己准备 mysql/postgresql,并不作为商业版交付,可自行配置地址;
  • 配置位置:infra/kubeflow-dashboard-* pod 的环境变量,可修改 mysql 地址,默认为 infra/mysql 的 service;
  • 注意:开发者需自主完成 mysql 的高可用和按日备份。

redis

  • 版本:redis 7.4install/kubernetes/redis/redis.yaml);
  • 功能:CubeStudio 的缓存数据存储、异步任务的中间队列和结果存储;
  • 依赖关系:CubeStudio 自研 pod(infra/kubeflow-dashboard-*)依赖 redis,企业可自己准备 redis;
  • 配置位置:infra/kubeflow-dashboard-* pod 的环境变量,可修改 redis 地址,默认为 infra/redis 的 service;
  • 注意:redis 版本太低可能无法支持依赖的功能,建议按依赖版本准备。

kubernetes-dashboard / metrics-scraper

  • 版本:kubernetes-dashboard v2.6.1、metrics-scraper v1.0.8
  • 功能:CubeStudio 查看 pod 日志、搜索 pod、查看 service 和 node 基础信息等;metrics-scraper 用于在 k8s dashboard 中查看 pod 的资源使用情况;
  • 依赖关系:CubeStudio 自研 pod(infra/kubeflow-dashboard-*)依赖 k8s dashboard;
  • 配置位置:infra/kubeflow-dashboard-config 的 configmap,即 CubeStudio 的 config.py 配置文件;
  • 注意:包含 user 版本和 cluster 版本的 k8s dashboard,可自行控制不同用户权限。

nvidia-device-plugin / dcgm-exporter / rdma-shared-dp-ds

  • 版本:nvidia-device-plugin v0.17.1、dcgm-exporter 3.1.7-3.1.4、rdma-shared-dp-ds v1.5.1
  • 功能:device-plugin 为 k8s 中调度 gpu 机器的 gpu 设备(cpu 机器不使用);dcgm-exporter 为 gpu 监控;rdma-shared-dp-ds 为 ib 交换机或 roce 网络对应的 k8s 插件;
  • 依赖关系:gpu 机器初始化的必备条件;不同 gpu 厂商使用的插件和监控组件不同,需要厂商提供;
  • 配置位置:infra/kubeflow-dashboard-config 的 configmap,即 CubeStudio 的配置文件;
  • 注意:对于不同厂商的 AI 加速卡,需要不同的 gpu 插件、虚拟化插件和监控插件。

⚠️ 待核实:rdma-shared-dp-ds 版本。镜像为自定义 tag ccr.ccs.tencentyun.com/cube-studio/k8s-rdma-shared-dev-plugin:mellanoxinstall/kubernetes/rdma/mellanox/daemonset.yaml),无法直接确认是否对应上游 v1.5.1。

hami

  • 版本:2.8.0(默认 install/kubernetes/gpu/vgpu/vgpu.yaml 使用 projecthami/hami:v2.8.0;旧 k8s 版本变体 vgpu-k8s1.21.yaml / vgpu-k8s1.25.yaml 使用 2.3.x);
  • 功能:k8s 中以虚拟化方式调度 gpu 机器的 gpu 设备,目前支持英伟达 gpu(cpu 机器不使用);
  • 依赖关系:虚拟化调用 gpu 的一种方式,也可在驱动层面做虚拟化;不同 gpu 厂商使用的插件不同,需要厂商提供虚拟化方法;
  • 配置位置:infra/kubeflow-dashboard-config 的 configmap,即 CubeStudio 的配置文件;
  • 注意:该组件是 cuda 层面做虚拟化的一种方式,最好每次只新建一个 pod。

labelstudio

  • 版本:见上方「待核实」(原文标 1.13.2);
  • 功能:标注平台;
  • 依赖关系:CubeStudio 中仅做跳转链接;
  • 配置位置:myapp/views/home.py 中的菜单配置(约 home.py:251-255,菜单标题「标注平台」,menu_type: out_link,url /labelstudio/user/login/);
  • 注意:label studio 标注平台可配置账号密码及注册登录方式,可自行设置。

⚠️ 已按代码纠正:原文写「myapp/home.py 中的菜单配置」,当前仓库无 myapp/home.py;标注平台菜单实际定义在 myapp/views/home.pyhome.py:251-255)。

postgresql(labelstudio 元数据)

  • 版本:11.5install/kubernetes/labelstudio/postgresql.yaml);
  • 功能:标注平台的元数据存储;
  • 依赖关系:labelstudio 依赖 postgresql,CubeStudio 未直接依赖;
  • 配置位置:kubeflow/label-studio 的 pod 环境变量中指定 postgresql 地址;后端读取标注库地址的配置项为 LABEL_STUDIO_DATmyapp/config.py:1119,默认 postgresql+psycopg2://postgres:postgres@postgresql.kubeflow:5432/labelstudio)。

training-operator

  • 版本:v1-8a066f9install/kubernetes/all_image.py);
  • 功能:tf/pytorch/xgb/mxnet/mpi 等分布式训练;
  • 依赖关系:相关分布式任务模板都依赖这个组件;CubeStudio 并没有直接依赖;
  • 配置位置:job-template/job/ 下 tf、pytorch、mxnet(deep-learning-framework)、mpi 等相关任务模板(详见 05-任务模板)。

volcano

  • 版本:v1.14.0install/kubernetes/volcano/volcano-development.yamlvolcanosh/vc-webhook-manager:v1.14.0);
  • 功能:volcano 相关任务、nni 超参搜索、deepspeed 等分布式训练所依赖的底层分布式/批调度框架;
  • 依赖关系:volcano 分布式任务、媒体分布式数据处理任务模板依赖该组件,nni 超参搜索也依赖它进行分布式集群部署;
  • 配置位置:CubeStudio 代码中使用 vcjob 的 yaml 直接对接 k8s 集群,再由 volcano 解析和运行(CRD 见 平台架构-Kubernetes基础);
  • 注意:多个地方使用(代码、模板任务等)。

workflow-controller、minio

  • 版本:workflow-controller v3.4.3、minio RELEASE.2023-04-20T17-56-55Z
  • 功能:pipeline 的云原生调度;
  • 依赖关系:CubeStudio 使用 workflow 运行 pipeline,workflow 使用 minio 作为中间日志和数据的存储;CubeStudio 也有定时任务清理过期 worker 和 minio 中过期文件;
  • 配置位置:CubeStudio 代码中直接创建 workflow 的 yaml 并提交到目标 k8s 集群,然后监听 workflow 状态。

istio-ingressgateway / istiod

  • 版本:1.15.0
  • 功能:ingressgateway 负责服务流量代理,istiod 为 istio 的控制面;
  • 依赖关系:所有 notebook、nni 超参搜索使用 istio 做前缀代理;grafana/k8s-dashboard/CubeStudio 前后端、所有推理服务和内部服务都使用 istio-ingressgateway 做前缀处理;推理服务在 prometheus 中的统计也由 istio ingressgateway 提供;
  • 配置位置:install/kubernetes/virtual.yaml 配置了基础组件的代理,其他在代码中直接对接 virtualservice 的 yaml;
  • 注意:全局流量入口均在 istio ingressgateway。

prometheus / node-exporter / grafana / prometheus-adapter

  • 版本:prometheus v2.27.1、node-exporter v1.5.0、grafana 9.5.20、prometheus-adapter v0.9.1
  • 功能:监控的生态组件;在 pipeline 拖拉拽界面可快速查看任务资源使用情况,在推理服务界面查看服务负载和 gpu 监控,在整体资源查看机器/pod 监控以及集群整体使用情况;
  • 依赖关系:CubeStudio 只依赖 grafana 进行监控数据的显示,需要包含指定的几个页面;
  • 配置位置:infra/kubeflow-dashboard-config 的 configmap,即 CubeStudio 的配置文件;
  • 注意:如果是多 k8s 集群,注意每个集群的 prometheus 存储数据不要用同一个目录。
最后更新 2026-07-09完整文档以官方仓库为准:GitHub Wiki