弹性部署服务最佳实践
一。环境准备
Section titled “一。环境准备”1. 本地环境将服务容器化
Section titled “1. 本地环境将服务容器化”构建完整服务镜像
2. 注册并初始化账号,申请测试券
Section titled “2. 注册并初始化账号,申请测试券”登录注册地址:https://console.suanli.cn/auth/login
2.1. 设置登陆密码并绑定微信(可选)
Section titled “2.1. 设置登陆密码并绑定微信(可选)”
2.2. 激活账号
Section titled “2.2. 激活账号”充值 0.01 激活账号
2.3. 申请测试算力券
Section titled “2.3. 申请测试算力券”注册账号后联系商务对接人员,提供账号信息由他给您走申请流程
3. 镜像上传,镜像预热
Section titled “3. 镜像上传,镜像预热”3.1. 初始化镜像仓库
Section titled “3.1. 初始化镜像仓库”平台镜像仓库页面:https://console.suanli.cn/serverless/image
3.2. 镜像上传
Section titled “3.2. 镜像上传 ”信息查看页面:https://console.suanli.cn/serverless/image/credentials
#登录镜像仓库docker login harborpush.suanleme.cn --username=yourname
#修改镜像tagdocker tag [ImageId] harborpush.suanleme.cn/yourname/[镜像名称]:[镜像版本号]
#推送镜像docker push harborpush.suanleme.cn/yourname/[镜像名称]:[镜像版本号]上传后平台镜像仓库会有对应的镜像
3.3. 镜像预热
Section titled “3.3. 镜像预热”若镜像大于 50G,请在上传完镜像后联系共绩技术人员提前给此镜像提前做预热,避免过长时间等待镜像下载
4. 存储准备
Section titled “4. 存储准备”4.1. 对象存储加速
Section titled “4.1. 对象存储加速”功能:以 s3 协议将云上对象存储桶内的数据加载到指定集群中,在加速完成后可以被同集群的任务以只读属性进行挂载,没有强制的容量限制;适合存放固定的大体积模型文件,实现模型镜像分离减少镜像体积
对象存储加速配置参考文档:https://www.gongjiyun.com/docs/flexible-deployment/function-usage-instructions/wqhqwbcf3i6byykijbvct9dkn0e/
配置方式:
配置存储桶的 AKSK 以建立连接,需要此 AKSK 具备 ListObjectsV2、PutObject、DeleteObject 权限
配置完成后,请点击「配置区域」选择需要启用的加速区域。区域配置完成后,可按需点击「预热缓存」选择目录进行数据预热。
使用方式:
创建任务时先指定存储桶并挂载到指定路径即可
二、创建任务
Section titled “二、创建任务”新增部署任务:https://console.suanli.cn/serverless/create
1. 绑定存储
Section titled “1. 绑定存储”开启「存储配置」--- 点击「新增挂载」--- 填写挂载路径
/root/.cache/huggingface
2. 选择 GPU 型号和区域
Section titled “2. 选择 GPU 型号和区域”先挂载指定区域后,任务区域会自动限制在存储的指定区域
3. 服务配置 - 选择镜像
Section titled “3. 服务配置 - 选择镜像”
方式一:使用预制镜像发布任务
Section titled “方式一:使用预制镜像发布任务”在服务配置中,可以选择平台提供的 预制镜像,每个镜像均配有文档说明,方便快速了解部署和使用方式。这里我们随机选择了一个预制镜像。
选择完成后,滚动到页面最下方点击 【部署服务】,提交任务。
方式二:使用用户自定义镜像发布任务
Section titled “方式二:使用用户自定义镜像发布任务”
3.1. 配置端口暴露、环境变量
Section titled “3.1. 配置端口暴露、环境变量”
3.2. 启动命令
Section titled “3.2. 启动命令”
4. 启动任务
Section titled “4. 启动任务”
三、检查任务运行状态
Section titled “三、检查任务运行状态”1.任务调度状态
Section titled “1.任务调度状态”刚启动时
任务状态为「运行中」开始计费
2.节点信息查看
Section titled “2.节点信息查看”
监控:该监控页面主要展示当前节点的运行状态、所在区域,以及 CPU、内存、GPU 等资源的实时使用率和历史趋势
日志:查看容器日志信息,只有容器内程序启动后才有
事件:容器启动的事件信息,在任务启动时查看,展示任务调度、镜像下载、任务挂载、启动命令配置等信息
终端:提供一个 webui 界面,可以进入容器内操作和查看信息,有对应的 shell 环境
更换节点:启动一个新的任务,关闭旧的任务,实际效果为将任务进行重启(pod 被重建)
3.终端查看挂载
Section titled “3.终端查看挂载”
4.查看端口链接
Section titled “4.查看端口链接”服务内没有监听对应端口时显示如下
安装 nginx 后
5.任务控制
Section titled “5.任务控制”
任务状态为「已停止」结束计费
四、信息补充
Section titled “四、信息补充”- 弹性部署服务不保存镜像状态,也暂不支持 ssh 功能,平台提供 webui
弹性部署服务中运行的任务不会保存其中的状态,每次启动是基于选择的镜像启动的,镜像没变化则启动后都一样,但挂载的共享存储卷保存的内容是可以被持久化的
- 镜像集群下载时间
第一次启动任务时镜像时从公网下载,启动耗时相对较长,同一个集群内后续会建立缓存,减少启动时间
- 节点扩缩容与链接的负载均衡
弹性部署服务中任务若为多节点,端口链接默认是轮询的负载均衡模式
- 终端页面不会保存上一个 shell 页面
点开终端执行的操作记录是标准页面的 bash,如果执行了前台的命令,页面关闭后进程不会保持,后续也无法再进入此 bash,而是进入一个新的 bash
五、名词解释
Section titled “五、名词解释”指创建一个新的 Serverless 服务实例,用于分配计算资源并运行指定镜像。
包含内容:
- 资源管理:GPU、CPU、内存等资源分配
- 镜像管理:指定运行环境
- 费用记录:按使用时长生成账单
GPU 型号
Section titled “GPU 型号”GPU 型号代表单个节点的计算能力规格:
- 1 卡 / 2 卡 / 4 卡 / 8 卡:单节点 GPU 数量
- 显存大小:决定可运行模型规模
- CPU / 内存:影响多任务并发能力
- 库存数量:当前可用资源规模
适用场景:
- 1 卡:模型推理、数据处理
- 多卡:分布式训练、高并发计算
显存要求(≥16GB)
Section titled “显存要求(≥16GB)”显存用于存储模型参数和中间计算数据。
- 16GB:中等规模模型的最低需求
- 24GB(如 4090):可稳定运行主流 AI 推理服务
节点代表相同配置的计算实例数量。
- 1 节点:单任务或低并发场景
- 多节点:并行计算或横向扩展
建议先使用 1 个节点 验证任务运行情况,再根据需要扩展。
服务名称是当前部署任务的唯一标识。
建议命名规范:用途-日期
示例:image-generation-20250515
便于后续管理、监控和成本统计。
启动命令用于覆盖镜像的默认启动行为,允许用户自定义容器启动时执行的指令。
作用:定制服务启动参数、初始化脚本或运行多个程序。
使用场景:
- 为 WebUI 添加额外启动参数(如
--listen --port 7860) - 执行自定义初始化脚本后再启动主服务
- 同时运行训练任务和监控进程
格式:通常为 Shell 命令,例如:
注意:若镜像已内置完善的启动脚本,通常无需填写;错误命令会导致容器启动失败。
指在部署配置中手动指定容器内部服务监听的端口号,使平台能够将外部请求正确转发至服务实例。
-
必要性:自定义镜像必须显式配置端口,平台无法自动识别容器内的服务端口。
-
配置方式:在“服务配置”区域填写端口号(如
7860、8888),需与镜像中实际启动的服务端口严格一致。 -
常见错误:
- 未添加端口 → 服务部署成功但无法访问
- 端口号填写错误 → 访问时出现连接失败或超时
-
注意:同一服务可配置多个端口,但需确保镜像内服务已相应监听;预制镜像通常已预置端口,无需手动添加。