RDS Custom容器系列灵骏节点部署大模型最佳实践

本文介绍如何在RDS Custom容器系列灵骏节点上部署大模型。

步骤一:下载大模型文件到OSS

  1. 前往ModelScope社区,搜索并下载目标大模型

  2. 将大模型文件上传至OSS

步骤二:在RDS Custom容器系列节点中挂载OSS

1、创建具有OSS访问权限的RAM用户并获取AccessKey

您需要首先获取RAM用户的AccessKey信息,以使其拥有OSS Bucket的操作权限。

  1. 创建RAM用户,如已创建可跳过。

  2. 创建自定义权限策略

    以下只读和读写权限策略请根据使用需求选择,并替换mybucket为您实际创建的Bucket名称。

    • OSS只读权限策略

      展开查看OSS只读权限策略内容

      {
          "Statement": [
              {
                  "Action": [
                      "oss:Get*",
                      "oss:List*"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                      "acs:oss:*:*:mybucket",
                      "acs:oss:*:*:mybucket/*"
                  ]
              }
          ],
          "Version": "1"
      }
    • OSS读写权限

      展开查看OSS读写权限策略内容

      {
          "Statement": [
              {
                  "Action": "oss:*",
                  "Effect": "Allow",
                  "Resource": [
                      "acs:oss:*:*:mybucket",
                      "acs:oss:*:*:mybucket/*"
                  ]
              }
          ],
          "Version": "1"
      }
  3. RAM用户添加OSS权限,详见RAM用户授权

  4. RAM用户创建AccessKey,详见获取AccessKey

2、创建静态卷PV

  1. 登录容器服务管理控制,在左侧导航栏选择集群列表

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点查看节点信息。

  3. 在左侧导航栏,选择集群信息

  4. 集群信息页面,单击右上方的通过Workbench管理集群

  5. 在终端界面,执行以下kubectl命令创建静态卷PV。

    kubectl create -f pv-oss.yaml

    以下为创建静态卷PVoss-csi-model-qwen-wulanchabu.yaml示例文件。

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: oss-csi-model-qwen-wulanchabu  # PV的名称,需唯一
      labels:
        alicloud-pvname: oss-csi-model-qwen-wulanchabu  # 自定义标签,用于标识PV
    spec:
      accessModes:
      - ReadWriteMany 
      capacity:
        storage: 900Gi
      csi:
        driver: ossplugin.csi.alibabacloud.com 
        volumeAttributes: 
          bucket: model-qwen  # 目标OSS Bucket名称,替换为真实值
          url: oss-cn-wulanchabu-internal.aliyuncs.com  # OSS 内网Endpoint
          otherOpts: "-o allow_other"  # 挂载选项:允许其他用户访问
          akId: ******  # 阿里云AccessKey ID,替换为真实值
          akSecret: *****  # AccessKey Secret,替换为真实值
        volumeHandle: oss-model-qwen-wulanchabu
      persistentVolumeReclaimPolicy: Retain  
      storageClassName: oss  # 关联StorageClass名称
      volumeMode: Filesystem  # 挂载为文件系统 

3、创建存储声明PVC

执行以下命令创建存储声明PVC。

kubectl create -f pvc-oss.yaml

以下为创建存储声明PVCoss-pvc-model-qwen-wulanchabu.yaml示例文件。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: oss-pvc-model-qwen-wulanchabu
  namespace: default
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 900Gi
  storageClassName: oss
  volumeMode: Filesystem

步骤三:部署Pod

说明

本文以大模型通义千问3-32B(Qwen3-32B)为例,在部署其他模型时,请使用ModelScope社区提供的相应部署命令进行替换。

直接部署Pod和大模型服务

执行以下命令,部署Pod和大模型服务。

kubectl apply -f pod.yaml

以下为部署Podsglang-qwen3.yaml示例文件。

apiVersion: v1
kind: Pod
metadata:
  name: sglang-qwen3
spec:
  containers:
  - command:
    - python3
    - -m
    - sglang.launch_server
    - --model-path
    - /data/Qwen3-32B
    - --trust-remote-code
    - --host 
    - 0.0.0.0 
    - --port
    - "8000"
    - --tensor-parallel-size
    - "8" 
    - --enable-metrics
    - --enable-torch-compile
    - --torch-compile-max-bs
    - "8"
    image: aliclouddb-pub-registry-vpc.cn-wulanchabu.cr.aliyuncs.com/aliclouddb-public/des-ai:25.07-v1.5.3-sglang0.4.7-torch2.6-cu126-20250717
    imagePullPolicy: IfNotPresent
    name: sglang-qwen3
    ports:
    - containerPort: 8000
      name: restful
      protocol: TCP
    resources:
      limits:
        aliyun/ppu: "8"
        cpu: "88"
        memory: 900G
      requests:
        aliyun/ppu: "8"
        cpu: "88"
        memory: 900G
    volumeMounts:
      - name: oss-volume
        mountPath: "/data"
  volumes:
    - name: oss-volume
      persistentVolumeClaim:
        claimName: oss-pvc-model-qwen-wulanchabu
  restartPolicy: Always
  nodeSelector:
    alibabacloud.com/virtual-node: "true"
  tolerations:
  - effect: NoSchedule
    key: virtual-kubelet.io/provider
    value: aliclouddb

先部署Pod,再部署模型服务

  1. 执行以下命令,部署Pod。

    kubectl apply -f pod.yaml

    以下为部署Podsglang-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-wulanchabu.cr.aliyuncs.com/aliclouddb-public/des-ai:25.07-v1.5.3-sglang0.4.7-torch2.6-cu126-20250717
        imagePullPolicy: IfNotPresent
        name: sglang-qwen3
        ports:
        - containerPort: 8000
          name: restful
          protocol: TCP
        resources:
          limits:
            aliyun/ppu: "8"
            cpu: "88"
            memory: 900G
          requests:
            aliyun/ppu: "8"
            cpu: "88"
            memory: 900G
        volumeMounts:
          - name: oss-volume
            mountPath: "/data"
      volumes:
        - name: oss-volume
          persistentVolumeClaim:
            claimName: oss-pvc-model-qwen-wulanchabu
      restartPolicy: Always
      nodeSelector:
        alibabacloud.com/virtual-node: "true"
      tolerations:
      - effect: NoSchedule
        key: virtual-kubelet.io/provider
        value: aliclouddb
  2. 执行以下命令,查看Pod状态。当待状态为Running时,表示Pod部署成功。

    kubectl get pod sglang-qwen3 -o wide
  3. 执行以下命令,进入Pod。

    kubectl exec -it sglang-qwen3 -- /bin/bash
  4. 执行以下命令,部署模型服务。

    python3 -m sglang.launch_server --model-path /data/Qwen3-32B --trust-remote-code --host 0.0.0.0  --port "8000" --tensor-parallel-size "8"  --enable-metrics --enable-torch-compile --torch-compile-max-bs "8"

步骤四:验证大模型服务

  1. 执行以下命令获取目标PodIP地址。

    kubectl get pods -o wide
  2. 执行以下命令,验证大模型服务。

    curl http://<目标PodIP地址>:8000/v1/chat/completions     -H "Content-Type: application/json"     -d '{
            "model": "qwen3",
            "messages": [
                {"role": "system", "content": "Initiate your response with \"<think>\\n嗯\" at the beginning of every output."},
                {"role": "user", "content": "你是什么模型?"}
            ],
            "stream": false
        }'

相关文档

常见问题

Q:使用pip install安装Python包时失败或超时,该如何解决?

A:这通常是由于pip的默认镜像源访问速度较慢或不稳定导致的,建议使用Python官方和阿里云的镜像源。您可以按照以下步骤创建或修改pip的配置文件:

  1. 执行以下命令,查找pip的配置文件。

    pip config debug
  2. 编辑配置文件,将以下内容添加或修改到该文件中。以配置文件/root/.config/pip/pip.conf为例。

    [global]
    index-url = https://pypi.org/simple
    extra-index-url = https://mirrors.aliyun.com/pypi/simple/
    
    [install]
    trusted-host = mirrors.aliyun.com