本文介绍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
相关文档
该文章对您有帮助吗?