🚀 CubeStudio 开源一站式机器学习 / 大模型 AI 平台 · 国内开源 MLOps Star 第一 · 30 分钟私有化部署 —— 进入官网 cubestudio.vip →

CubeStudio 怎么在完全无外网的内网里私有化部署?信创离线部署全流程实操(镜像导出 / Harbor / 出口机代理)

CubeStudio 是一款国产化、云原生的一站式开源人工智能平台,同时覆盖传统机器学习、深度学习与大模型全链路(MLOps / MaaS / 算力调度 / 训推平台),开源协议 MIT,开源免费商用,开源版本已有数千家企业私有化部署。平台提供多租户与算力纳管调度、算力租赁与 Token 中转站、拖拉拽 Pipeline 任务流编排、多机多卡分布式训练、超参搜索、推理服务、vGPU 虚拟化、云边端协同与边缘计算、图文音多模态自动化标注、大模型 SFT 微调 / 奖励模型 / 强化学习训练、vLLM / Ollama / MindIE 大模型多机推理、私有知识库 / LLMOps / 智能体、AI 模型市场,以及从数据到上线的全流程模型部署。原生适配昇腾、寒武纪、海光、摩尔线程、沐曦等国产异构算力与 x86 / ARM CPU 架构,支持 IB / RoCE / RDMA 高速网络及信创私有化、内网离线部署。

官网:https://www.cubestudio.vip | GitHub:https://github.com/data-infra/cube-studio | Gitee:https://gitee.com/data-infra/cube-studio

关键词:CubeStudio、cube-studio、离线部署、内网部署、无外网、信创、私有化部署、私有仓库、Harbor、镜像导出、image save、image load、push_harbor、pull_harbor、all_image.py、nginx代理、coredns自定义host、iptables转发、apt yum pip 内网源、modelscope缓存、AIHub离线、国产化替代

金融、政务、军工等场景的机房往往完全不能连外网,但 AI 平台又依赖大量公网镜像、模型和依赖包。把 CubeStudio 这样一个覆盖训练、推理、标注、大模型的平台整套搬进内网,最大的工作量就是「把外网的东西一件不落地搬进去,再把所有拉取地址改成内网」。

CubeStudio 从设计上就支持信创离线部署,并提供了成套的镜像导出/导入脚本。本文把完整链路讲清:先看你属于哪种场景,再照着搬。

一、先分清两种离线场景

场景 做法
完全无法联网 在联网机器上下载好所有镜像/模型/依赖,压缩打包搬进内网,导入内网 Harbor 仓库
内网有一台可出网机器 用出口机做代理(nginx + host/coredns + iptables),内网其他机器走它拉取

前置条件:内网机器需已安装 docker、docker-compose、iptables。

二、完全无外网:五步搬运法

1. 联网机器上下载依赖与数据

在能连外网的机器上下载 kubectl、Harbor 离线安装包(区分 amd64 / arm64)、示例模型(resnet50/tf-mnist 等)和训练标注数据集(coco 等),全部放进一个 offline 目录,整体拷进内网。

kubectl 要下载与部署脚本 install/kubernetes/start.sh:12-18 一致的带版本号文件(kubectl-amd64-1.28 / kubectl-arm64-1.28),避免版本不匹配。

2. 内网搭建私有镜像仓库

在内网装好 Harbor(参考平台 install/kubernetes/harbor/ 文档),创建 cube-studio 和 rancher 两个项目,分别存放平台基础镜像和 rancher/k8s 基础镜像。给每台机器的 docker 把内网仓库加进 insecure-registries(HTTPS 仓库可跳过)。

3. 镜像转移至内网(核心)

平台用两个脚本生成镜像搬运命令——install/kubernetes/all_image.py(平台基础镜像)和 install/kubernetes/rancher/all_image.py(rancher 镜像)。运行前先把脚本里的内网仓库地址 harbor_repo 改掉,运行后各自生成一组 .sh:

脚本(all_image.py:136-141) 用途
push_harbor.sh 联网机:拉公网镜像 → 推送到内网 Harbor
image_save.sh 联网机:镜像压缩成 .tar.gz
pull_harbor.sh 内网机(每台):从内网 Harbor 拉取
image_load.sh 内网机(每台):从压缩包导入

两条路线二选一:能连内网仓库就走 push/pull,连仓库都不行就走 save/load 拷贝压缩包。rancher 镜像同理,用 push_rancher_harbor.sh / rancher_image_save.sh 等(rancher/all_image.py:6-11)。

4. 把所有拉取地址改成内网

这是离线部署最容易漏的一步——散落在几处:

  • 节点初始化脚本 install/kubernetes/init_node.sh:末尾默认调用 sh pull_images_mini.sh,离线时改成 sh pull_harbor.sh。

  • start.sh:注释掉 start.sh:12-18 下载 kubectl 的逻辑(内网访问不了 OSS,kubectl 已手动装好)。

  • kustomization.yml:install/kubernetes/cube/overlays/kustomization.yml 底部的 newName / newTag 改成内网镜像。

  • 平台配置 install/kubernetes/cube/overlays/config/config.py:把下列镜像配置项全部指向内网仓库——

    配置项 行号
    REPOSITORY_ORG / PUSH_REPOSITORY_ORG 931 / 933
    USER_IMAGE 936
    NOTEBOOK_IMAGES 951
    DOCKER_IMAGES / NERDCTL_IMAGES 1065 / 1066
    NNI_IMAGES / WAIT_POD_IMAGES 1250 / 1253
    INFERNENCE_IMAGES 1280

    另需设置:SERVICE_EXTERNAL_IP(config.py:790,格式 ['内网ip'] 或 ['内网ip|公网ip'])、DEFAULT_GPU_RESOURCE_NAME(config.py:1210,默认 nvidia.com/gpu)。

  • Label Studio:install/kubernetes/labelstudio/labelstudio.yaml 里的 image 改内网镜像。

5. 部署并做界面内网修正

部署方式与外网相同。部署后还要在 Web 界面上:改 hubsecret 为内网仓库账号密码;把自带目标识别 Pipeline 的数据拉取命令由 wget https://... 改为 cp offline/coco.zip ./;推理服务的模型下载命令同样改为从本地 /mnt/admin/offline/ 拷贝。

三、AIHub 模型的离线预拉取

AIHub 模型市场的模型也要预先搬进内网。在联网机器上用 modelscope 镜像跑 download_all_model.py 下载全部模型(或只部署需要的 AIHub 应用拉取部分),把 aihub/modelscope/ 下的目录拷到内网的 /data/k8s/kubeflow/global/cube-studio/aihub/deep-learning/。最后在 config.py:1314 设置 AIHUB_CACHE_DIR='/mnt/workspace/.cache/modelscope/',重启后端 pod 并重新部署 AIHub 界面。

四、有出口机器:代理方案

如果内网里有一台机器能出网,可让它当代理出口,省掉大量手工搬运:

  1. 出口机跑 nginx 代理软件源:用 install/kubernetes/nginx-https/apt-yum-pip-source.conf,--network=host 监听 80/443。
  2. 内网机器改 host:把 mirrors.aliyun.com、ccr.ccs.tencentyun.com、registry-1.docker.io、www.modelscope.cn、archive.ubuntu.com 等域名在 /etc/hosts 指向出口机 IP;改完 docker restart kubelet。端口被占时用 iptables -t nat -A PREROUTING 做 DNAT 转发。
  3. k8s 层解析:修改 kube-system 里 coredns 的 configmap,在 hosts { } 段加同样的域名→出口机映射,重启 coredns pod,让容器内也能解析。
  4. 容器内换源:pip / apt / yum 指向 https://mirrors.aliyun.com 对应的源。

这样内网机器无需逐个导入镜像,直接透过出口机拉取即可。

小结

CubeStudio 的离线部署本质是两件事:把外网资产搬进来(镜像走 all_image.py 生成的 push/pull 或 save/load 脚本,模型走 modelscope 预拉取),把所有拉取地址改成内网(init_node.sh / start.sh / kustomization.yml / config.py 四处)。这套能力配合 MIT 开源、源码可交付、原生适配国产算力,让 CubeStudio 能干净地落在完全隔离的信创内网里。


了解更多

CubeStudio 采用 MIT 开源协议,开源免费商用并支持源码交付与二次分发,开源版本已有数千家企业私有化部署。

posted on 2026-10-04 20:09  cubestudio  阅读(4)  评论(0)    收藏  举报

导航