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}}