すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:CPFS 汎用型ボリュームの静的プロビジョニングの使用

最終更新日:Mar 26, 2026

このトピックでは、Container Service for Kubernetes (ACK) クラスターのワークロードに、静的にプロビジョニングされた Cloud Parallel File System (CPFS) 汎用型ボリュームをマウントする方法について説明します。CPFS は、AI トレーニング、自動運転、遺伝子コンピューティング、ビデオレンダリングなどのハイパフォーマンスコンピューティング (HPC) ワークロード向けに設計されています。

前提条件

開始する前に、以下を確認してください。

制限事項

制限事項詳細
リージョンの可用性CPFS 汎用型は特定のリージョンでのみ利用可能です。詳細については、「利用可能なリージョン」をご参照ください。
マウントプロトコルNFS のみサポートされています。POSIX プロトコルはサポートされていません。
ノードアーキテクチャx86 のみ対応しています。ContainerOS ノードはサポートされていません。
ネットワークボリュームは、同一 VPC 内のクラスターにのみマウントできます。VPC をまたいだマウントはサポートされていません。
プロビジョニング静的プロビジョニングのみサポートされています。動的プロビジョニングはサポートされていません。

ストレージコンポーネントの構成

構成方法は、ご利用の csi-plugin のバージョンによって異なります。

csi-plugin 1.33 以降

cnfs-nas-daemon コンポーネントをインストールし、csi-plugin で AlinasMountProxy=true FeatureGate を有効にします。これにより、CSI コンポーネントはマウントを cnfs-nas-daemon にデリゲートできます。詳細については、「cnfs-nas-daemon コンポーネントの管理」をご参照ください。

csi-plugin 1.33 より前

  1. CPFS 汎用型向けに NFS マウントを有効にするには、ConfigMap を適用します。

    cat << EOF | kubectl apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: csi-plugin
      namespace: kube-system
    data:
      cpfs-nas-enable: "true"
    EOF
  2. 必要な依存関係をインストールするために csi-plugin を再起動します。これは実行中のサービスには影響しません。

    kubectl -n kube-system rollout restart daemonset csi-plugin

    期待される出力:

    daemonset.apps/csi-plugin restarted

ステップ 1: CPFS ファイルシステムとプロトコルサービスの作成

永続ボリューム (PV) を作成する前に、CPFS ファイルシステム、プロトコルサービス、およびそのプロトコルサービスからのマウントアドレスが必要です。

  1. CPFS 汎用型ファイルシステムの作成

    • クラスターと同じリージョンにファイルシステムを作成します。

    • 既存のファイルシステムがある場合は、NAS コンソールを開き、[ファイルシステムリスト] に移動し、ファイルシステムをクリックして、[基本情報] ページでそのバージョンを確認します。バージョンは 2.3.0 以降である必要があります。バージョンがそれより前の場合は、新しいファイルシステムを作成します。

  2. プロトコルサービスの作成

    • クラスターと同じ VPC と vSwitch を使用します。

    • 既存のプロトコルサービスがある場合は、クラスターと同じ VPC にあることを確認します。そうでない場合は、新しいサービスを作成します。

  3. プロトコルサービスのマウントアドレスを取得します。 「[プロトコルサービス]」ページで、「[エクスポートディレクトリ]」をクリックします。 「[マウントアドレス]」列からアドレスをコピーします。 このアドレスは、マウントポイントのドメイン名とエクスポートされたディレクトリパスを組み合わせたもので、例: cpfs-****.<region-id>.cpfs.aliyuncs.com:/share です。

ステップ 2: PV と PVC の作成

永続ボリューム (PV) は、プロビジョニングした CPFS ストレージを表します。永続ボリューム要求 (PVC) はその PV にバインドされ、Pod がそれを使用できるようにします。

  1. PV と PVC を作成します。

    1. 次のコンテンツを cpfs-pv-pvc.yaml として保存します。

      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: cpfs-pv
        labels:
          alicloud-pvname: cpfs-pv         # PVC セレクターがこの PV にバインドするために使用するラベル
      spec:
        accessModes:
        - ReadWriteMany                    # 複数のノードが同時に読み書きすることを許可します
        capacity:
          storage: 20Gi
        csi:
          driver: nasplugin.csi.alibabacloud.com
          volumeAttributes:
            mountProtocol: cpfs-nfs        # NFS プロトコル経由でマウント
            path: "/share"                 # エクスポートされたディレクトリパス。サブディレクトリにすることもできます。例: /share/dir
            volumeAs: subpath             # サブディレクトリタイプの PV を作成します
            server: "cpfs-******-******.cn-shanghai.cpfs.aliyuncs.com"  # マウントアドレスからのドメイン名
          volumeHandle: cpfs-pv           # 上記の PV 名と一致する必要があります
        mountOptions:
        - rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport
        - vers=3
      ---
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: cpfs-pvc
      spec:
        accessModes:
        - ReadWriteMany
        resources:
          requests:
            storage: 20Gi               # PV 容量を超えてはなりません
        selector:
          matchLabels:
            alicloud-pvname: cpfs-pv    # このラベルを持つ PV にバインドします

      PV パラメーター

      パラメーター説明必須デフォルト

      labels

      PVC セレクターがこの PV に一致させてバインドするために使用するラベル。

      はい

      accessModes

      PV のアクセスモード。

      はい

      capacity.storage

      ボリュームのストレージ容量。

      はい

      csi.driver

      CSI ドライバータイプ。nasplugin.csi.alibabacloud.com に設定します。

      はい

      csi.volumeAttributes.mountProtocol

      マウントプロトコル。NFS 経由でマウントするために cpfs-nfs に設定します。

      はい

      csi.volumeAttributes.path

      CPFS プロトコルサービスのエクスポートされたディレクトリ。例: /share。サブディレクトリにすることもできます。例: /share/dir

      はい

      csi.volumeAttributes.volumeAs

      PV タイプ。サブディレクトリタイプの PV の場合は subpath に設定します。

      はい

      csi.volumeAttributes.server

      CPFS プロトコルサービスのマウントアドレスからのドメイン名。

      はい

      csi.volumeHandle

      ボリュームの一意の識別子。PV 名と一致する必要があります。

      はい

      PVC パラメーター

      パラメーター説明必須デフォルト

      accessModes

      PVC が PV に要求するアクセスモード。

      はい

      selector.matchLabels

      特定の PV にバインドするために使用されるラベルセレクター。

      はい

      resources.requests.storage

      Pod によって要求されるストレージ容量。PV 容量を超えてはなりません。

      はい

    2. マニフェストを適用します。

      kubectl apply -f cpfs-pv-pvc.yaml
  2. PVC が PV にバインドされていることを確認します。

    kubectl get pvc cpfs-pvc

    出力は STATUS: Bound を表示するはずです。

    NAME       STATUS   VOLUME    CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
    cpfs-pvc   Bound    cpfs-pv   20Gi       RWO                           <unset>                 18m

ステップ 3: アプリケーションのデプロイとマウントの確認

  1. CPFS ボリュームを使用する StatefulSet を作成します。

    1. 次のコンテンツを cpfs-test.yaml として保存します。

      apiVersion: apps/v1
      kind: StatefulSet
      metadata:
        name: cpfs-sts
      spec:
        selector:
          matchLabels:
            app: nginx
        serviceName: "nginx"
        replicas: 1
        template:
          metadata:
            labels:
              app: nginx
          spec:
            containers:
            - name: nginx
              image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
              volumeMounts:
              - name: cpfs-pvc
                mountPath: /data
            volumes:
            - name: cpfs-pvc
              persistentVolumeClaim:
                claimName: cpfs-pvc
    2. マニフェストを適用します。

      kubectl apply -f cpfs-test.yaml
  2. CPFS ボリュームがマウントされていることを確認します。

    kubectl exec cpfs-sts-0 -- mount | grep /data

    正常なマウントでは、/datavers=3 を含む NFS エントリが表示されます:

    cpfs-******-******.cn-shanghai.cpfs.aliyuncs.com:/share on /data type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,port=30000,timeo=600,retrans=2,sec=sys,mountaddr=127.0.1.255,mountvers=3,mountport=30000,mountproto=tcp,local_lock=all,addr=127.0.1.255)