この Topic では、kubectl を使用して永続ボリューム (PV) と永続ボリューム要求 (PVC) を作成する方法について説明します。その後、PVC を RDS Custom AI ノードまたは Lingjun ノード上のアプリケーションにマウントできます。
注意事項
RDS Custom AI ノードと Lingjun ノードは、OSS バケットをマウントするためにプレーンテキストの AccessKey のみをサポートします。
ステップ 1: OSS アクセス権限を持つ RAM ユーザーを作成し、AccessKey を取得する
まず、OSS バケットで操作を実行する権限を持つ Resource Access Management (RAM) ユーザーの AccessKey を取得します。
RAM ユーザーを作成する。すでに RAM ユーザーがいる場合は、このステップをスキップできます。
必要に応じて、以下の読み取り専用または読み取り/書き込みポリシーを選択できます。
mybucketをご使用のバケットの名前に置き換えてください。OSS 読み取り専用ポリシー
OSS 読み取り/書き込みポリシー
RAM ユーザーに OSS 権限を付与します。詳細については、「RAM ユーザーに権限を付与する」をご参照ください。
RAM ユーザーの AccessKey を作成します。詳細については、「AccessKey の取得」をご参照ください。
ステップ 2: 静的永続ボリューム (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 # Alibaba Cloud OSS Container Storage Interface (CSI) ドライバー。
volumeAttributes:
bucket: model-qwen # ターゲット OSS バケットの名前。
path: /Qwen3-32B # バケット内のマウントパスのプレフィックス (例: /Qwen3-32B フォルダ)。
url: oss-cn-beijing-internal.aliyuncs.com # 中国 (北京) リージョンの内部 OSS エンドポイント。
otherOpts: "-o allow_other" # マウントオプション: 他のユーザーがボリュームにアクセスできるようにします。
akId: ****** # Alibaba Cloud AccessKey ID。実際の値に置き換えてください。
akSecret: ***** # AccessKey Secret。実際の値に置き換えてください。
volumeHandle: oss-model-qwen-inner # ボリュームの一意の識別子。
persistentVolumeReclaimPolicy: Retain # PV が削除されたときにデータを保持します。これはデフォルトの動作です。
storageClassName: oss # 関連付けられた StorageClass の名前。
volumeMode: Filesystem # ボリュームをファイルシステムとしてマウントします。ステップ 3: 永続ボリューム要求 (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 # ファイルシステムモード。ステップ 4: Pod をデプロイして PVC をマウントする
次のコマンドを実行して Pod をデプロイし、PVC をマウントします。
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" # Pod を仮想ノードにスケジュールします。
tolerations:
- effect: NoSchedule
key: virtual-kubelet.io/provider
value: aliclouddb # 仮想ノードの Taint に対する Toleration。ステップ 5: Pod を検証する
次のコマンドを実行して、Pod のステータスを表示します。
kubectl get pod sglang-qwen3 -o wide