AI 推理场景中,GPU 资源的扩容速度直接影响业务高峰期间的服务可用性。ACK Auto Mode集群针对 GPU 弹性链路进行了专项优化,可自动完成 GPU 节点的扩容和基础运维。本文以Qwen3.5-2B为例,介绍如何在 ACK Auto Mode 集群中使用 GPU 算力快速部署大模型推理服务。
准备工作
已创建符合条件的 GPU 智能托管节点池。
步骤一:准备模型文件并挂载OSS
本步骤使用一台临时 ECS 实例从 ModelScope 下载 Qwen3.5-2B 模型文件,上传到 OSS Bucket,然后为集群配置 PV 和 PVC。模型以存储卷方式挂载到推理容器,避免每次容器启动时重复下载。
执行本步骤前,确认以下前提条件:
已在临时 ECS 实例上完成 ossutil 的安装与配置。
1. 下载Qwen3.5-2B模型
在临时 ECS 实例上执行以下操作,从 ModelScope 下载模型文件。
安装 Git。
# 可执行 yum install git 或 apt install git 安装 sudo yum install git安装 Git LFS(Large File Storage)插件。
# 可执行 yum install git-lfs 或 apt install git-lfs 安装 sudo yum install git-lfs初始化Git LFS,从 ModelScope 克隆 Qwen3.5-2B 仓库到本地(跳过 LFS 大文件,避免重复下载)。
git lfs install GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/Qwen/Qwen3.5-2B.git进入目录,拉取 LFS 管理的模型大文件。
cd Qwen3.5-2B/ git lfs pull
2. 上传模型文件到OSS
在 OSS Bucket中创建存放模型的目录。
将
<Your-Bucket-Name>替换为实际名称。ossutil mkdir oss://<Your-Bucket-Name>/models/Qwen3.5-2B将本地模型文件上传至 OSS。
ossutil cp -r ./Qwen3.5-2B oss://<Your-Bucket-Name>/models/Qwen3.5-2B
3. 配置OSS存储卷
为集群创建 PV 和 PVC,使 Pod 以只读方式挂载 OSS 中的模型目录。详情参见使用ossfs 2.0静态存储卷。
选择鉴权方式(RRSA或AccessKey)并准备访问凭证,以确保集群能够安全、合规地访问OSS Bucket资源。
本示例以AccessKey鉴权为例。两种方式略有不同,详见使用ossfs 2.0静态存储卷。
将此前获取的AccessKey存储为Secret,供PV使用。
将
<yourAccessKeyID>和<yourAccessKeySecret>替换为真实凭证。Secret的Namespace需要和应用Namespace一致。kubectl create -n default secret generic oss-secret --from-literal='akId=<yourAccessKeyID>' --from-literal='akSecret=<yourAccessKeySecret>'为目标集群创建 PV 和 PVC,将 OSS 中的模型目录以只读方式挂载。以下示例使用ossfs 2.0静态存储卷。
步骤二:部署推理服务并验证
1. 创建Deployment和Service
使用 vLLM 框架将 Qwen3.5-2B 模型以 Deployment 形式部署到集群,并通过 LoadBalancer 类型的 Service 对外暴露推理接口。
在ACK集群列表页面,单击目标集群名称,在集群详情页左侧导航栏,选择。
单击使用YAML创建资源,提交以下 YAML 内容。
提交后,若集群中 GPU 资源不足,Pod 会先进入
Pending状态。ACK Auto Mode 会自动触发 GPU 节点扩容、创建新节点,并在节点初始化完成后将 Pod 调度到新节点运行,无需手动干预。当 Pod 进入Running状态时,模型服务部署完成。部署完成后,可在无状态页面查看应用状态。
2. 验证推理服务
获取 Service 暴露的公网 IP。
export EXTERNAL_IP=$(kubectl get svc qwen-2b -o jsonpath='{.status.loadBalancer.ingress[0].ip}') echo ${EXTERNAL_IP}发送推理请求,验证模型服务是否可用。
将 IP
8.XX.XX.89替换为实际获取到的公网 IP。curl http://8.XX.XX.89:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "Qwen3.5-2B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Kubernetes" } ] } ], "max_tokens": 200 }'预期输出:
{"id":"chatcmpl-98f158cdbbb38087","object":"chat.completion","created":1775043962,"model":"Qwen3.5-2B","choices":[{"index":0,"message":{"role":"assistant","content":"**Kubernetes** is an open-source container orchestration platform that automates deployment, scaling, management, and repair of containerized applications..."},"finish_reason":"length"}],"usage":{"prompt_tokens":14,"total_tokens":214,"completion_tokens":200}}