首页/AI/大模型部署与运维速查/内网离线部署完整流程
部署形态与选型43 条

内网离线部署完整流程

离线部署的关键是把「模型 + 镜像 + Python 依赖」三样东西在联网环境准备齐,再整体搬运;任何一项缺失都会在内网表现为加载失败。

离线部署的关键是准备齐三样

内网环境没有外网出口,部署失败的原因九成集中在三样东西没备齐:模型权重、容器镜像、Python 依赖包。任何一项缺失,在内网的表现都是加载失败或启动即退出。稳妥做法是在联网环境把三样连同启动脚本与配置模板一起打包,并附一份校验清单,落地时逐项核对。

离线包清单(示例)

离线包清单(示例)
1. 模型目录:权重分片、索引、配置与分词器文件齐全
2. 容器镜像:用导出命令保存为归档文件
3. 依赖仓库:把所需 wheel 包下载到本地目录
4. 启动脚本与配置模板:含环境变量与端口约定
5. 校验清单:文件名与大小或校验和,落地时逐项核对

镜像与依赖搬运

镜像与依赖搬运
# 联网侧:导出镜像并压缩(体积大,按需压缩)
docker save vllm/vllm-openai:v0.6.0 | gzip > vllm-image.tar.gz
# 内网侧:解压并载入镜像
gunzip -c vllm-image.tar.gz | docker load
# 依赖离线安装:指定本地目录并禁用网络索引
pip install --no-index --find-links ./wheels -r requirements.txt

清单项与漏掉的后果

清单项漏掉后的表现
权重分片与索引加载阶段报文件缺失或分片不完整
配置与分词器文件服务能启动但模板错乱、输出异常
容器镜像内网无法拉取镜像,部署停在第一步
依赖 wheel 包启动时报模块缺失,且无法在线安装
启动脚本与配置现场凭记忆拼参数,版本不可复现
校验清单出问题时要逐文件比对,排查时间成倍增加

典型使用场景

  • 内网机房部署:整包搬运后按清单核对,一次性完成环境准备
  • 客户现场交付:把可复现的安装包交给对方,避免现场依赖外网
  • 隔离环境升级:新版本先打包带走,验证通过后再切换
  • 灾备演练:验证离线环境能否在无外网条件下恢复服务
  • 批量部署:同一套包在多个节点复用,减少环境差异
内网机器的时间同步与域名解析也会影响镜像与服务运行:时间不同步会让日志时间轴错乱,证书与鉴权类问题也会跟着出现。
依赖包要与目标机器的 Python 版本和平台匹配:平台标签不一致会直接安装失败,打包时就在目标系统上验证一次。

易错点

  • 只搬模型不搬镜像:内网无法拉取镜像,部署第一步就卡住
  • 依赖包平台不匹配:安装失败且报错信息容易被误读为缺包
  • 不写校验清单:落地后逐文件比对,浪费时间且容易漏项
  • 忽略配置文件与模板:服务能启动但输出异常,排查方向会被带偏
  • 现场改参数不留记录:部署结果不可复现,下次升级要从头猜

数据来源与参考

  • Docker 官方文档(docs.docker.com)
  • pip 官方文档(pip.pypa.io)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌