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

File Storage NAS:コンテナコンピューティングサービス (ACS) での NAS ボリュームのマウント

最終更新日:Jun 04, 2025

このトピックでは、コンテナコンピューティングサービス (ACS) に NAS ファイルシステム (NAS) をマウントする方法と、NAS の共有ストレージとデータ永続性機能を確認する方法について説明します。

シナリオ

NAS は、共有アクセス、スケーラビリティ、高信頼性、高パフォーマンスを特徴とする分散ファイルシステムサービスです。 NAS は、データ共有と高 IOPS が必要なシナリオに適しています。 コストとパフォーマンスの要件に基づいて、適切なファイルシステムタイプとストレージタイプを選択できます。 詳細については、「汎用型 NAS ファイルシステム」、「超高速型 NAS ファイルシステム」、および「ファイルシステムを選択する」をご参照ください。

説明

汎用型 NAS ファイルシステムと超高速型 NAS ファイルシステムでは、マウント接続、ファイルシステムの数、ファイル共有プロトコルの制限が異なります。 詳細については、「制限」をご参照ください。

NAS ファイルシステムが既に存在するかどうかによって、次のいずれかの方法を選択して NAS ボリュームをマウントおよび使用できます。

前提条件

managed-csiprovisioner コンポーネントが ACS クラスタにインストールされています。

説明

ACS コンソールの ACS クラスタ管理ページに移動します。 クラスタ管理ページの左側のナビゲーションウィンドウで、[操作] > [アドオン] を選択します。 [ストレージ] タブで、managed-csiprovisioner がインストールされているかどうかを確認できます。

制限

  • SMB プロトコルを使用する NAS ファイルシステムはマウントできません。

  • NAS ファイルシステムを複数のポッドにマウントする場合、ポッドは同じ VPC にデプロイする必要があります。 異なる VPC のポッドに NAS ファイルシステムをマウントすることはできません。

    説明

    同じ VPC 内では、NAS ファイルシステムをゾーンをまたいでマウントできます。

  • NFSv3 プロトコルのみを使用して NAS ファイルシステムをマウントできます。

考慮事項

  • NAS は共有ストレージサービスです。 NAS ボリュームを複数のポッドにマウントできます。 この場合、NAS ファイルシステム内のデータが複数のポッドによって変更された場合、アプリケーションはポッド間でデータを同期できる必要があります。

  • NAS ファイルシステムをマウントするときは、アプリケーションの YAML ファイルで securityContext.fsgroup を構成しないでください。 そうしないと、マウントが失敗する可能性があります。

    説明

    NAS ファイルシステムの / ディレクトリは、権限、所有者、またはグループの変更をサポートしていません。

  • NAS ファイルシステムをマウントした後、マウントポイントを削除しないでください。 そうしないと、オペレーティングシステムのハングの問題が発生する可能性があります。

既存の NAS ファイルシステムをストレージボリュームとして使用する

ステップ 1:NAS ファイルシステム情報を取得する

  1. ACS ポッドで使用される VPC と vSwitch の ID を取得します。

    説明

    次の手順では、コンソールで情報を取得する方法について説明します。 また、kubectl get cm -n kube-system acs-profile -o yaml コマンドを実行して、acs-profile の YAML ファイルを表示し、vpcId フィールドと vSwitchIds フィールドからポッドで使用される VPC ID と vSwitch ID を取得することもできます。

    1. ACS コンソール にログオンします。

    2. [クラスタ] で、クラスタの名前をクリックして、クラスタ管理ページに移動します。

    3. 左側のナビゲーションバーで、[構成管理] > > [ConfigMap] を選択します。

    4. [ConfigMap] ページで、上部の名前空間を [kube-system] に変更し、acs-profile を見つけて、[YAML を編集] をクリックします。

    5. vpcId フィールドと vSwitchIds フィールドから、ポッドで使用される VPC ID と vSwitch ID を取得します。

  2. 既存の NAS ファイルシステムが要件を満たしていることを確認し、マウントポイントアドレスを取得します。

    1. NAS コンソール にログオンし、左側のナビゲーションウィンドウで [ファイルシステムリスト] をクリックします。

    2. ターゲット NAS ファイルシステムを見つけ、リージョン、ゾーン、およびプロトコルタイプが要件を満たしていることを確認します。

      • NAS ファイルシステムは VPC をまたいでマウントできません。つまり、リージョンをまたいで使用できません。 既存の NAS ファイルシステムのリージョンが ACS クラスタのリージョンと同じであることを確認してください。

      • 同じ VPC 内では、NAS ファイルシステムをゾーンをまたいでマウントできます。 ただし、パフォーマンス向上のために、ACS クラスタ内のポッドと同じゾーンを使用することをお勧めします。

      • NAS ファイルシステムのプロトコルタイプが [NFS] であることを確認します。 SMB プロトコルを使用する NAS ファイルシステムはマウントできません。

      nas

    3. マウントポイントが要件を満たしていることを確認し、マウントポイントアドレスを取得します。

      1. ファイルシステム ID をクリックします。

      2. ファイルシステムの詳細ページの左側のナビゲーションウィンドウで、[マウントポイント] をクリックします。

      3. [マウントポイント] セクションで、既存のマウントポイントが要件を満たしていることを確認し、マウントポイントアドレスを取得します。

        説明
        • 汎用 NAS ファイルシステムのマウントポイントはシステムによって自動的に作成されます。 ただし、超高速型 NAS ファイルシステムのマウントポイントは手動で作成する必要があります。

        • 既存のマウントポイントが要件を満たしていない場合は、新しく作成できます。 詳細については、「マウントポイントを管理する」をご参照ください。

        • マウントポイントの VPC は、ACS クラスタ内のポッドで使用される VPC と同じである必要があります。 そうしないと、マウントは失敗します。

        • パフォーマンス向上のために、マウントポイントの vSwitch は、ACS クラスタ内のポッドで使用される vSwitch と同じにすることをお勧めします。

        • マウントポイントのステータスは [アクティブ] です。

        NAS挂载点.png

ステップ 2:PVC を作成する

kubectl

  1. nas-pvc.yaml という名前のファイルを作成し、次の内容をファイルにコピーします。

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: nas-pvc
      annotations:
        csi.alibabacloud.com/mountpoint: *******-mw***.cn-shanghai.nas.aliyuncs.com
        csi.alibabacloud.com/mount-options: nolock,tcp,noresvport
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 20Gi
      storageClassName: alibaba-cloud-nas

    フィールドの説明:

    重要

    上記の YAML テンプレートに基づいて PVC を作成すると、システムは最初に annotations フィールドの NAS 構成に基づいて静的 PV を作成し、次に PV に関連付けられた PVC を作成します。

    パラメーター

    説明

    csi.alibabacloud.com/mountpoint

    マウントする NAS ファイルシステムのディレクトリ。 このパラメーターは、以前に作成された NAS ファイルシステムとの関連付けに使用されます。

    • ****-****.<region>.nas.aliyuncs.com などのマウントポイントアドレスを入力すると、NAS ファイルシステムのルートディレクトリ(/)がマウントされます。

    • ****-****.<region>.nas.aliyuncs.com:/dir などのマウントポイントアドレスとサブディレクトリを入力すると、NAS ファイルシステムの /dir ディレクトリがマウントされます。 /dir ディレクトリが存在しない場合は、システムによって自動的に作成されます。

    csi.alibabacloud.com/mount-options

    NAS ファイルシステムのマウントに必要なパラメーター。 nolock,tcp,noresvport を使用することをお勧めします。

    accessModes

    アクセスモード。

    storage

    ポッドに割り当てられるストレージ容量。 これは、作成する NAS ボリュームの容量を指します。

  2. PVC を作成します。

    kubectl create -f nas-pvc.yaml
  3. PV を確認します。

    kubectl get pv

    次の出力は、作成した PVC の構成で指定された NAS ファイルシステムに関する情報に基づいて、PV が自動的に作成されたことを示しています。 情報には、ファイルシステムのマウントポイントが含まれています。

    NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM             STORAGECLASS        REASON   AGE
    nas-ea7a0b6a-bec2-4e56-b767-47222d3a****   20Gi       RWX            Retain           Bound    default/nas-pvc   alibaba-cloud-nas            1m58s
  4. PVC を表示します。

    kubectl get pvc

    次の出力は、PV が PVC に自動的にバインドされていることを示しています。

    NAME      STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS        VOLUMEATTRIBUTESCLASS  AGE
    nas-pvc   Bound    nas-ea7a0b6a-bec2-4e56-b767-47222d3a****   20Gi       RWX            alibaba-cloud-nas   <unset>                2m14s

コンソール

  1. ACS コンソール にログオンします。

  2. [クラスタ] で、クラスタの名前をクリックして、クラスタ管理ページに移動します。

  3. クラスタ管理ページの左側のナビゲーションウィンドウで、[ボリューム] > [永続ボリュームクレーム] を選択します。

  4. [永続ボリュームクレーム] ページで、[作成] をクリックします。

  5. 表示されるダイアログボックスで、パラメーターを構成し、[作成] をクリックします。

    パラメーター

    説明

    [PVC タイプ]

    [NAS] を選択します。

    NAS

    [名前]

    PVC のカスタム名を指定します。 名前は、UI に表示される形式の要件に従う必要があります。

    nas-pvc

    [割り当てモード]

    [マウントポイントドメイン名を使用] を選択します。

    マウントポイントドメイン名を使用

    [ストレージドライバ]

    [CSI] がデフォルトで選択されています。

    CSI

    [合計]

    ポッドに割り当てられるストレージ容量。 これは、NAS ボリュームの容量でもあります。

    20Gi

    [アクセスモード]

    ReadWriteMany または ReadWriteOnce を選択できます。

    ReadWriteMany

    [マウントポイントドメイン名]

    マウントする NAS ファイルシステムのディレクトリ。

    • ****-****.<region>.nas.aliyuncs.com などのマウントポイントアドレスを入力すると、NAS ファイルシステムのルートディレクトリ(/)がマウントされます。

    • ****-****.<region>.nas.aliyuncs.com:/dir などのマウントポイントアドレスとサブディレクトリを入力すると、NAS ファイルシステムの /dir ディレクトリがマウントされます。 /dir ディレクトリが存在しない場合は、システムによって自動的に作成されます。

    350514****-mw***.cn-shanghai.nas.aliyuncs.com

    作成が完了すると、[永続ボリュームクレーム] ページに新しく作成された PVC が表示されます。 PVC は、自動的に作成された PV (NAS ストレージボリューム) にバインドされています。 対応する PV の詳細は、[永続ボリューム] ページで確認できます。

    nas-pvc.png

    nas-pv.png

ステップ 3: アプリケーションを作成して NAS ボリュームをマウントする

kubectll

  1. nas-test.yaml という名前のファイルを作成し、次の内容をファイルにコピーします。

    次の YAML テンプレートは、2 つのポッドをプロビジョニングするデプロイメントを作成します。どちらのポッドも nas-pvc という名前の PVC を介してストレージリソースをリクエストし、NAS ボリュームを /data ディレクトリにマウントします。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nas-test
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
            ports:
            - containerPort: 80
            volumeMounts:
              - name: pvc-nas
                mountPath: /data
          volumes:
            - name: pvc-nas
              persistentVolumeClaim:
                claimName: nas-pvc
  2. デプロイメントを作成し、NAS ファイルシステムをデプロイメントにマウントします。

    kubectl create -f nas-test.yaml
  3. デプロイメントによって作成されたポッドのステータスを確認します。

    kubectl get pod | grep nas-test

    次の出力は、2 つのポッドが作成されたことを示しています。

    nas-test-****-***a   1/1     Running   0          40s
    nas-test-****-***b   1/1     Running   0          40s
  4. マウントパスを表示します。

    次のコマンドを実行して、マウントパス内のファイルを表示します。デフォルトでは、データは返されません。

    kubectl exec nas-test-****-***a -- ls /data

コンソール

  1. クラスタ管理ページの左側のナビゲーションウィンドウで、[ワークロード] > [デプロイメント] を選択します。

  2. [デプロイメント] ページで、[イメージから作成] をクリックします。

  3. デプロイメントのパラメーターを設定し、[作成] をクリックします。

    次の表に、いくつかのパラメーターについて説明します。その他のパラメーターにはデフォルト値を使用します。詳細については、「デプロイメントを作成する」をご参照ください。

    構成ページ

    パラメーター

    説明

    [基本情報]

    [名前]

    デプロイメントのカスタム名を入力します。名前は、UI に表示される形式の要件に従う必要があります。

    nas-test

    [レプリカ]

    デプロイメントによってプロビジョニングされるポッドレプリカの数。

    2

    [コンテナー構成]

    [イメージ名]

    アプリケーションのデプロイに使用するイメージのアドレス。

    registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest

    [必要なリソース]

    アプリケーションに必要な vCore の数とメモリの量を指定します。

    0.25 vCore と 0.5 GiB のメモリ

    [ボリューム]

    [PVC を追加] をクリックし、パラメーターを構成します。

    • [マウントソース]: 作成した PVC を選択します。

    • [コンテナーパス]: コンテナー内の NAS ファイルシステムをマウントするパスを入力します。

    • マウントソース: nas-pvc

    • コンテナーパス: /data

  4. アプリケーションがデプロイされているかどうかを確認します。

    1. [デプロイメント] ページで、アプリケーションの名前をクリックします。

    2. [ポッド] タブで、ポッドが正常に実行されていること (ステータスが Running であること) を確認します。

新しい NAS ファイルシステムをストレージボリュームとして作成する

ステップ 1:StorageClass を作成する

  1. nas-sc.yaml という名前のファイルを作成し、次のテンプレートをファイルにコピーします。必要に応じて、テンプレート内のパラメーターを変更します。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-nas-fs
    mountOptions:
    - nolock,tcp,noresvport
    - vers=3
    parameters:
      volumeAs: filesystem
      fileSystemType: standard
      storageType: Performance
      regionId: cn-shanghai
      zoneId: cn-shanghai-e
      vpcId: "vpc-2ze2fxn6popm8c2mzm****"
      vSwitchId: "vsw-2zwdg25a2b4y5juy****"
      accessGroupName: DEFAULT_VPC_GROUP_NAME
      deleteVolume: "false"
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Retain

    次の表は、テンプレートのパラメーターについて説明しています。

    重要

    種類やストレージ仕様が異なる NAS ファイルシステムは、異なるリージョンとゾーンをサポートしています。ビジネスのストレージ要件、ACS クラスタのリージョン、ACS クラスタ内のポッドで使用されている VPC と vSwitch に基づいて、作成する NAS ファイルシステムとマウントポイントのリージョン、ゾーン、仮想プライベートクラウド(VPC)、および vSwitch を指定します。詳細については、以下のトピックをご参照ください。

    • さまざまな種類の NAS ファイルシステムのストレージ仕様、パフォーマンス、課金、およびサポートされているリージョンとゾーンについては、「汎用型 NAS」および「超高速型 NAS」をご参照ください。

    • 汎用型 NAS ファイルシステムと超高速型 NAS ファイルシステムでは、接続のマウント、ファイルシステムの数、およびファイル共有プロトコルの制限が異なります。詳細については、「制限」をご参照ください。

    • kubectl get cm -n kube-system acs-profile -o yaml コマンドを実行して、acs-profile の YAML ファイルを表示し、vpcId フィールドと vSwitchIds フィールドからポッドで使用されている VPC ID と vSwitch ID を取得できます。

    パラメーター

    説明

    volumeAs

    filesystem のみがサポートされています。この値は、NAS ファイルシステムが自動的に作成されることを示します。各 NAS ボリュームは、NAS ファイルシステムに対応しています。

    fileSystemType

    NAS ファイルシステムのタイプ。

    • standard(デフォルト):汎用型 NAS ファイルシステム。詳細については、「汎用型 NAS」をご参照ください。

    • extreme:超高速型 NAS ファイルシステム。詳細については、「超高速型 NAS」をご参照ください。

    storageType

    NAS ファイルシステムのストレージタイプ。

    • 汎用型 NAS ファイルシステムの場合、次の値がサポートされています。

      • Performance(デフォルト):パフォーマンス

      • Capacity:容量

    • 超高速型 NAS ファイルシステムの場合、次の値がサポートされています。

      • standard(デフォルト):中間

      • advanced:アドバンスト

    regionId

    NAS ファイルシステムが属するリージョンの ID。リージョン ID は、ACS クラスタのリージョン ID と同じである必要があります。

    zoneId

    NAS ファイルシステムが属するゾーンの ID。ACS クラスタ内のポッドで使用されている vSwitch に基づいてゾーンを選択します。

    説明

    同じ VPC 内では、NAS ファイルシステムをゾーンをまたいでマウントできます。パフォーマンス向上のために、同じゾーンを選択することをお勧めします。

    vpcIdvSwitchId

    NAS ファイルシステムのマウントポイントが属する VPC と vSwitch の ID。ACS クラスタ内のポッドで使用されている VPC と vSwitch の ID に値を設定します。

    accessGroupName

    NAS ファイルシステムのマウントポイントが属する権限グループ。デフォルト値は DEFAULT_VPC_GROUP_NAME です。

    provisioner

    ドライバタイプ。値を nasplugin.csi.alibabacloud.com に設定します。これは、Alibaba Cloud NAS CSI プラグインが使用されていることを示します。

    reclaimPolicy

    PV の再利用ポリシー。Retain のみがサポートされています。この値は、PV が削除されたときに NAS ファイルシステムとそのマウントポイントが保持されることを示します。

  2. StorageClass を作成します。

    kubectl create -f nas-sc.yaml
  3. StorageClass を確認します。

    kubectl get sc

    期待される出力:

    NAME                             PROVISIONER                       RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    alicloud-nas-fs                  nasplugin.csi.alibabacloud.com    Retain          Immediate              false                  13m
    ......

ステップ 2:PVC を作成する

  1. 次の内容を nas-pvc-fs.yaml という名前の YAML ファイルとして保存します。

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: nas-pvc-fs
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: alicloud-nas-fs
      resources:
        requests:
          storage: 20Gi

    フィールドの説明:

    パラメーター

    説明

    accessModes

    アクセスモード。

    storage

    ポッドに割り当てられるストレージ容量。これは、作成する NAS ボリュームの容量でもあります。

    説明

    超高速型 NAS ファイルシステムの最小容量制限は 100 GiB であるため、StorageClass で定義されている NAS ファイルシステムのタイプが超高速型 NAS の場合、storage の値は 100 GiB 以上である必要があります。そうでない場合、対応する PV を作成できません。

    storageClassName

    関連付ける StorageClass の名前。

  2. PVC を作成します。

    kubectl create -f nas-pvc-fs.yaml
  3. PVC を表示します。

    kubectl get pvc

    次のようなコマンド出力が返されます。PVC は、自動的に作成される PV に関連付けられています。NAS コンソール に移動して、対応する NAS ファイルシステムを表示できます。

    NAME         STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      VOLUMEATTRIBUTESCLASS  AGE
    nas-pvc-fs   Bound    nas-04a730ba-010d-4fb1-9043-476d8c38****   20Gi       RWX            alicloud-nas-fs   <unset>                14s

ステップ 3:アプリケーションを作成し、NAS ボリュームをマウントする

  1. nas-test-fs.yaml という名前のファイルを作成し、次の内容をファイルに追加します。

    次の YAML テンプレートは、2 つのポッドをプロビジョニングする Deployment を作成します。どちらのポッドも nas-pvc-fs という名前の PVC を介してストレージリソースをリクエストし、NAS ボリュームを /data ディレクトリにマウントします。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nas-test
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
            ports:
            - containerPort: 80
            volumeMounts:
              - name: pvc-nas
                mountPath: /data
          volumes:
            - name: pvc-nas
              persistentVolumeClaim:
                claimName: nas-pvc-fs
  2. Deployment を作成し、NAS ファイルシステムをマウントします。

    kubectl create -f nas-test-fs.yaml
  3. Deployment によって作成されたポッドのステータスを確認します。

    kubectl get pod | grep nas-test

    次の出力は、2 つのポッドが作成されたことを示しています。

    nas-test-****-***a   1/1     Running   0          40s
    nas-test-****-***b   1/1     Running   0          40s
  4. マウントパスを表示します。

    次のコマンドを実行して、マウントパス内のファイルを表示します。デフォルトでは、データは返されません。

    kubectl exec nas-test-****-***a -- ls /data

NAS の共有ストレージとデータ永続化機能を確認する

前の例で作成したデプロイメントは 2 つのポッドをプロビジョニングし、NAS ファイルシステムがポッドにマウントされます。次の方法で確認できます。

  • 1 つのポッドにファイルを作成し、別のポッドからファイルを表示して、共有ストレージを確認します。

  • デプロイメントを再作成します。再作成されたポッドから NAS ボリュームにアクセスし、元のデータが NAS ファイルシステムにまだ存在するかどうかを確認します。データがまだ存在する場合、データ永続化は有効になっています。

  1. ポッド情報を表示します。

    kubectl get pod | grep nas-test

    次の出力が返されます。

    nas-test-****-***a   1/1     Running   0          40s
    nas-test-****-***b   1/1     Running   0          40s
  2. データ共有が有効になっているかどうかを確認します。

    1. ポッドにファイルを作成します。

      nas-test-****-***a という名前のポッドを例として使用します。

      kubectl exec nas-test-****-***a -- touch /data/test.txt
    2. 別のポッドからファイルを表示します。

      nas-test-****-***b という名前のポッドを例として使用します。

      kubectl exec nas-test-****-***b -- ls /data

      次の出力は、新しく作成されたファイル test.txt が共有されていることを示しています。

      test.txt
  3. 永続ストレージを確認します。

    1. デプロイメントを再作成します。

      kubectl rollout restart deploy nas-test
    2. ポッドが再作成されるまで待ちます。

      kubectl get pod | grep nas-test

      次の出力が返されます。

      nas-test-****-***c   1/1     Running   0          67s
      nas-test-****-***d   1/1     Running   0          49s
    3. 新しく作成されたポッドから、ファイルシステムに保存されているデータが存在するかどうかを確認します。

      nas-test-****-***c という名前のポッドを例として使用します。

      kubectl exec nas-test-****-***c -- ls /data

      次の出力は、ファイルがまだ NAS ボリュームに存在し、再作成されたポッドのマウントディレクトリからアクセスできることを示しています。

      test.txt