本文介紹RDS Custom容器系列AI節點、靈駿節點如何通過kubectl方式建立儲存卷、儲存聲明並掛載至應用中。
注意事項
RDS Custom容器系列AI節點、靈駿節點掛載OSS僅支援明文AccessKey。
步驟一:建立具有OSS存取權限的RAM使用者並擷取AccessKey
您需要首先擷取RAM使用者的AccessKey資訊,以使其擁有OSS Bucket的操作許可權。
建立RAM使用者,如已建立可跳過。
以下唯讀和讀寫權限策略請根據使用需求選擇,並替換
mybucket為您實際建立的Bucket名稱。OSS唯讀權限原則
OSS讀寫權限
為RAM使用者添加OSS許可權,詳見為RAM使用者授權。
為RAM使用者建立AccessKey,詳見擷取AccessKey。
步驟二:建立靜態卷PV
執行以下命令建立靜態卷PV。
kubectl create -f pv-oss.yaml以下為建立靜態卷PV的oss-csi-model-qwen-inner.yaml樣本檔案。
apiVersion: v1
kind: PersistentVolume
metadata:
name: oss-csi-model-qwen-inner # PV的名稱,需唯一
labels:
alicloud-pvname: oss-csi-model-qwen-inner # 自訂標籤,用於標識PV
spec:
accessModes:
- ReadWriteMany # 支援多節點讀寫(OSS的天然特性)
capacity:
storage: 63Gi # 聲明PV的儲存容量(需與OSS儲存空間匹配)
csi:
driver: ossplugin.csi.alibabacloud.com # 阿里雲OSS CSI驅動
volumeAttributes:
bucket: model-qwen # 目標OSS Bucket名稱
path: /Qwen3-32B # Bucket內的掛載路徑首碼(如 /Qwen3-32B目錄)
url: oss-cn-beijing-internal.aliyuncs.com # OSS 內網Endpoint(北京地區)
otherOpts: "-o allow_other" # 掛載選項:允許其他使用者訪問
akId: ****** # 阿里雲AccessKey ID,替換為真實值
akSecret: ***** # AccessKey Secret,替換為真實值
volumeHandle: oss-model-qwen-inner # Volume的唯一識別碼(需唯一)
persistentVolumeReclaimPolicy: Retain # 刪除PV時保留資料(預設行為)
storageClassName: oss # 關聯StorageClass名稱
volumeMode: Filesystem # 掛載為檔案系統步驟三:建立儲存聲明PVC
執行以下命令建立儲存聲明PVC。
kubectl create -f pvc-oss.yaml以下為建立儲存聲明PVC的oss-pvc-model-qwen-inner.yaml樣本檔案。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: oss-pvc-model-qwen-inner # PVC名稱
namespace: default # 命名空間
spec:
accessModes:
- ReadWriteMany # 請求與PV相同的訪問模式
resources:
requests:
storage: 63Gi # 請求的儲存容量(需≤PV的容量)
storageClassName: oss # 關聯StorageClass
volumeMode: Filesystem # 檔案系統模式步驟四:部署Pod並掛載PVC
執行以下命令,部署Pod並掛載VC。
kubectl apply -f pod.yaml以下為部署Pod的sglang-qwen3.yaml樣本檔案。
apiVersion: v1
kind: Pod
metadata:
name: sglang-qwen3 # Pod名稱
spec:
containers:
- command:
- sh
- -c
- echo hello world; sleep infinity; # 測試命令(替換為實際商務邏輯)
image: aliclouddb-pub-registry-vpc.cn-beijing.cr.aliyuncs.com/aliclouddb-public/des-ai-nv:25.05-sglang0.4.6.post4-pytorch2.6-cu124-20250513-serverless
imagePullPolicy: IfNotPresent # 僅拉取新鏡像
name: sglang # 容器名稱
ports:
- containerPort: 8000 # 容器監聽連接埠
name: restful
protocol: TCP
resources:
requests:
cpu: "80"
memory: "300Gi"
nvidia.com/gpu: "8"
limits:
cpu: "80"
memory: "300Gi"
nvidia.com/gpu: "8"
volumeMounts:
- name: oss-volume # 掛載名稱需與volumes一致
mountPath: "/data" # 容器內掛載路徑(存放OSS資料)
volumes:
- name: oss-volume
persistentVolumeClaim:
claimName: oss-pvc-model-qwen-inner # 關聯PVC名稱
restartPolicy: Always # Pod失敗時重啟
nodeSelector:
alibabacloud.com/virtual-node: "true" # 調度到虛擬節點(Vnode)
tolerations:
- effect: NoSchedule
key: virtual-kubelet.io/provider
value: aliclouddb # 相容虛擬節點的汙點容忍步驟五:驗證Pod
執行以下命令,查看Pod狀態。
kubectl get pod sglang-qwen3 -o wide