替换基础组件与镜像

已有 istio/prometheus/minio/数据库等基础设施,想让 CubeStudio 复用而不是另起一套;或要把平台镜像换成自己私有仓库的镜像时读这篇

02-部署安装 / 组件与运维衔接
替换组件replace component自有istioistioprometheusnode-exportergrafanakubernetes-dashboardminioredismysqlpostgresql替换镜像image私有仓库NOTEBOOK_IMAGES

替换基础组件

适用于企业已自建了 istio / prometheus / minio(S3) / mysql / redis / postgresql / kubernetes-dashboard 等基础设施,希望 CubeStudio 直接复用而不是再部署一套的场景。 组件级的配置项(变量含义、默认值)参见 04-运维管理/配置文件管理.md

使用自有 istio

开源版本中使用 istio 1.15.0,可以在 install/kubernetes/start.sh 里注释掉"部署istio"段(约 install/kubernetes/start.sh:114-121,含 kubectl apply -f istio/install-1.15.0.yaml)来跳过 istio 部署。

注意事项:

1、istio 作为平台的统一入口,需要暴露 IP,并开放 80、8080 端口,会代理 CubeStudio 的 web 界面、notebook、pipeline、nni、内部服务、推理服务、监控服务。

2、配置 istio 的监控指标对接到 prometheus,并且默认不启动 sidecar,通过 label 启动自动注入,同时流量的复制、分流、域名代理等功能可用。

istio 在平台中的角色与流量代理细节,见 01-架构原理/流量代理与网关.md

兼容自有 prometheus 和 node-exporter

如果原本已经使用 prometheus-operator 部署了 prometheus,可以基于原有的 prometheus-operator 继续创建 CubeStudio 所需 prometheus,但 node-exporter 无法重复创建。

可以先修改 install/kubernetes/prometheus/node-exporter/node-exporter-sm.yml,其中的 namespaceSelector 中的命名空间,改为你已经部署了的 node-exporter 的命名空间。

然后再更新这个部署文件:

kubectl apply -f node-exporter-sm.yml

使用自有的 prometheus

CubeStudio 对 prometheus 生态需求部分(不需要下面的需求可以不使用 prometheus):

  • pipeline 编排界面查看任务的资源使用 grafana 看板(需要配置 pod 的资源使用情况)
  • 整体资源界面有机器的、pod 的、gpu 的 grafana 资源采集看板,和 pod 的资源利用率(需要配置机器的、pod 的、gpu 的资源使用情况)
  • 推理服务界面查看 istio 服务的吞吐和使用 grafana 看板(需要配置 istio 的指标采集)
  • 推理服务可以配置 metric 接口(需要 prometheus 支持通过 annotations 自动发现被注册的服务入口点)
  • 推理服务可以配置 gpu 弹性伸缩(需要配置 prometheus_adapter 组件,将 prometheus 指标转化为弹性伸缩自定义指标)
  • pod 资源、node 资源、服务负载的 grafana 看板需要能接收变量,变量参考现有 CubeStudio 的 grafana 看板

修改方法:

  1. 注释掉 start.sh 平台"部署 prometheus"部分,可以将 CubeStudio 中的 grafana 看板部署到目标 grafana 组件上。
  2. config.py 中的 PROMETHEUS 变量更改为目标 prometheus 服务地址(默认 prometheus-k8s.monitoring:9090,见 myapp/config.py:808)。
  3. config.py 中的 GRAFANA_TASK_PATHGRAFANA_SERVICE_PATHGRAFANA_CLUSTER_PATHGRAFANA_NODE_PATHGRAFANA_GPU_PATH 修改为对应的 grafana 看板地址(见 myapp/config.py:1364-1372)。
  4. config.py 中的 ALL_LINKS 中 grafana 的地址修改为真实的地址(见 myapp/config.py:955)。

监控生态的整体部署与看板说明见 04-运维管理/监控部署与看板.md;架构层面见 01-架构原理/监控体系/README.md

使用自有 kubernetes-dashboard

config.py 文件中替换 K8S_DASHBOARD_CLUSTER 变量(默认 /k8s/dashboard/cluster/,见 myapp/config.py:817)。

minio 替换

kubeflow 命名空间,workflow-controller-configmap 的 configmap,修改 s3:endpoint 为自己的 S3 服务地址,再重启 workflow 的 pod(该 configmap 定义见 install/kubernetes/argo/workflow.yaml,artifactRepository 中的 s3.endpoint 默认指向 minio:9000)。

config.py 文件中替换 MINIO_HOST 变量(默认 minio.kubeflow:9000,见 myapp/config.py:1302)。

redis 替换

替换 infra 命名空间 kubeflow-dashboard-* 的 deployment 的环境变量。

如需对接哨兵模式的 Redis,见 04-运维管理/Redis哨兵部署.md

mysql 替换

替换 infra 命名空间 kubeflow-dashboard-* 的 deployment 的环境变量。

元数据库(MySQL/PostgreSQL/达梦)配置见 04-运维管理/元数据库配置.md

postgresql 替换

替换 kubeflow 命名空间 labelstudio 的 deployment 的环境变量。


替换镜像名

把平台默认的公共镜像(ccr.ccs.tencentyun.com/cube-studio/...)换成自己私有仓库的镜像。私有仓库搭建见 04-运维管理/私有镜像仓库Harbor.md

基础组件镜像

install/kubernetes 中部署的组件,可替换为源镜像名的新 tag。

业务镜像

模板镜像:需要在 myapp/init/init-job-template.json 中的 image_name

notebook 镜像:config.py 中的 NOTEBOOK_IMAGES 变量配置(见 myapp/config.py:998)。

超参搜索镜像:config.pyNNI_IMAGESWAIT_POD_IMAGES 变量(见 myapp/config.py:12981300),myapp/init/init-automl.json 中的 job_worker_image

内部服务镜像:

  • myapp/init/init-service.jsonimage_name

推理服务镜像:

  • config.py 中的 INFERNENCE_IMAGES 字典(含 ml-servertfservingtorch-servertriton-servervllmollamamindietriton-llm 等键,见 myapp/config.py:1324 起)
  • myapp/init/init-inference.jsonimage_name

gpu 镜像:

  • myapp/init/init-job-template.jsonccr.ccs.tencentyun.com/cube-studio 开头的镜像

镜像管理:修改 myapp/init/init-image.jsonname

aihub 镜像:myapp/init/init-aihub.json 中的 images

业务代码中镜像

搜索替换 myapp/views/ccr.ccs.tencentyun.com/cube-studio 开头的镜像,替换为自己的镜像,重新打包后台镜像。

最后更新 2026-07-04完整文档以官方仓库为准:GitHub Wiki