离线部署的关键是准备齐三样
内网环境没有外网出口,部署失败的原因九成集中在三样东西没备齐:模型权重、容器镜像、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 版本和平台匹配:平台标签不一致会直接安装失败,打包时就在目标系统上验证一次。