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

File Storage NAS:NFSを使用して静的にプロビジョニングされたNASボリュームをマウントする

最終更新日:May 23, 2025

ファイルストレージNAS (NAS) は、共有アクセス、柔軟なスケーリング、高信頼性、高性能を提供する分散ファイルシステムです。 このトピックでは、静的にプロビジョニングされたNASボリュームをマウントする方法、および静的にプロビジョニングされたNASボリュームを使用して永続ストレージと共有ストレージを有効にする方法について説明します。

前提条件

  • CSIプラグインは、クラスタにインストールされる。 csi-pluginおよびcsi-provisionerを更新する方法の詳細については、「csi-pluginおよびcsi-provisionerの更新」をご参照ください。

    説明

    FlexVolumeがクラスターで使用されている場合は、FlexVolumeが推奨されないため、FlexVolumeをCSIにアップグレードします。 詳細については、「FlexVolumeからCSIへのアップグレード」をご参照ください。 [操作] > [アドオン] を選択し、[ストレージ] タブをクリックしてストレージコンポーネントの種類を確認します。

  • kubectlクライアントがクラスターに接続されています。 詳細については、「クラスターの kubeconfig ファイルを取得し、kubectl を使用してクラスターに接続する」をご参照ください。

  • 既存のNASファイルシステムが次の要件を満たしていることを確認してください。 それ以外の場合は、要件を満たす新しいNASファイルシステムを作成するか、動的にプロビジョニングされたNASボリュームをマウントします。 詳細については、「ファイルシステムの作成」をご参照ください。

    • プロトコルタイプは、ネットワークファイルシステム (NFS) である。 Extreme NASファイルシステムはNFSv3のみをサポートします。

    • マウントターゲットとNASファイルシステムをマウントするクラスターノードは同じ仮想プライベートクラウド (VPC) に属し、マウントターゲットのステータス[使用可能] です。 マウントターゲットの作成方法の詳細については、「マウント ターゲットの管理」をご参照ください。

      説明

      NASボリューム内のデータを暗号化する場合は、NASファイルシステムの作成時に暗号化設定を構成できます。

制限事項

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

  • 汎用NASファイルシステムとExtreme NASファイルシステムでは、マウントシナリオ、ファイルシステムの数、ファイル共有プロトコルの制限が異なります。 サポートされている状態の詳細については、「制限」をご参照ください。

  • 静的にプロビジョニングされたNASボリュームは拡張できません。

使用上の注意

手順1: 静的にプロビジョニングされたNASボリュームのマウント

kubectlを使う

  1. 静的にプロビジョニングされたPVを作成します。

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

      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: pv-nas
        labels:
          alicloud-pvname: pv-nas
      spec:
        capacity:
          storage: 5Gi
        accessModes:
          - ReadWriteMany
        csi:
          driver: nasplugin.csi.alibabacloud.com
          volumeHandle: pv-nas   # Specify the name of the PV. 
          volumeAttributes:
            server: "0c47****-mpk25.cn-shenzhen.nas.aliyuncs.com"  # The mount target of the NAS file system, which is the same as the VPC of the cluster. 
            path: "/csi"  # Specify the subdirectory of the NAS file system. 
        mountOptions:
        - nolock,tcp,noresvport
        - vers=3

      パラメーター

      説明

      name

      PV の名前。

      labels

      PVに追加するラベル

      ストレージ

      NASボリュームの容量。

      説明

      実際のシナリオでは、NASボリュームの容量はストレージパラメータによって制限されません。 NASボリュームの使用可能な容量の詳細については、「制限」をご参照ください。

      accessModes

      PVのアクセスモード。 デフォルト値はReadWriteManyです。 値をReadWriteOnceまたはReadOnlyManyに設定することもできます。

      ドライバー

      ボリュームのプロビジョニングに使用されるストレージドライバーのタイプ。 この例では、パラメーターはnasplugin.csi.alibabacloud.comに設定されています。 これは、Alibaba Cloudが提供するCSIプラグインが使用されていることを示しています。

      volumeHandle

      PVの一意の識別子。 PVの名前を入力します。 複数のPVが使用される場合、各PVの識別子は一意でなければならない。

      サーバー

      NASファイルシステムのマウントターゲット。クラスターのVPCと同じである必要があります。

      説明

      値をマウントターゲットのドメイン名に置き換えます。 マウントターゲットのドメイン名を表示する方法の詳細については、「マウント ターゲットの管理」をご参照ください。

      パス

      マウントするNASファイルシステムのサブディレクトリ。 汎用NASファイルシステムの親ディレクトリは /です。

      重要

      Extreme NASファイルシステムをマウントする場合は、このパラメーターを /shareディレクトリのサブディレクトリに設定します。 例: /share/csi

      mountOptions

      optionsパラメーターを設定し、mountOptionsフィールドでNFSバージョンを指定します。 NFSプロトコルのバージョン。 NFSv3の使用を推奨します。 Extreme NASファイルシステムはNFSv3のみをサポートします。 NFSプロトコルの詳細については、「NFS」をご参照ください。

    2. 静的にプロビジョニングされたPVを作成します。

      kubectl create -f pv-nas.yaml
  2. NASタイプのPVCを作成するときは、selectorパラメーターを設定して、PVを選択し、PVをPVCにバインドする方法を指定します。

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

      kind: PersistentVolumeClaim
      apiVersion: v1
      metadata:
        name: pvc-nas
      spec:
        accessModes:
          - ReadWriteMany
        resources:
          requests:
            storage: 5Gi
        selector:
          matchLabels:
            alicloud-pvname: pv-nas

      パラメーター

      説明

      name

      PVCの名前。

      pvc-nas

      accessModes

      PVCのアクセスモード。 デフォルト値はReadWriteManyです。 値をReadWriteOnceまたはReadOnlyManyに設定することもできます。

      ReadWriteMany

      ストレージ

      アプリケーションが使用できるNASボリュームの要求容量。 要求された容量は、NASボリュームの総容量を超えることはできません。

      説明

      実際のシナリオでは、NASボリュームの容量はストレージパラメータによって制限されません。 NASボリュームの使用可能な容量の詳細については、「制限」をご参照ください。

      5Gi

      matchLabels

      PVを選択し、PVをPVCにバインドするために使用されるラベル。

      pv-nas

    2. 静的にプロビジョニングされたPVCを作成します。

      kubectl create -f pvc-nas.yaml
  3. nas-staticという名前のアプリケーションをデプロイし、PVCをアプリケーションに関連付けます。

    1. 次のYAMLテンプレートは、nas-staticアプリケーションの作成に使用されるnas.yamlファイルの例を示しています。

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: nas-static
        labels:
          app: nginx
      spec:
        replicas: 2
        selector:
          matchLabels:
            app: nginx
        template:
          metadata:
            labels:
              app: nginx
          spec:
            containers:
            - name: nginx
              image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
              ports:
              - containerPort: 80
              volumeMounts:
                - name: pvc-nas
                  mountPath: "/data"
            volumes:
              - name: pvc-nas
                persistentVolumeClaim:
                  claimName: pvc-nas

      パラメーター

      説明

      mountPath

      NASボリュームがマウントされるコンテナーのパス。

      claimName

      アプリケーションにマウントされたPVCの名前。

    2. nas-staticという名前のアプリケーションをデプロイし、PVCをアプリケーションに関連付けます。

      kubectl create -f nas.yaml
  4. ポッド情報を表示します。

    kubectl get pod

    想定される出力:

    NAME                          READY   STATUS    RESTARTS   AGE
    nas-static-5b5cdb85f6-n****   1/1     Running   0          32s
    nas-static-c5bb4746c-4****    1/1     Running   0          32s

ACKコンソールの使用

ステップ1: PVの作成

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ボリューム] > [ボリューム] を選択します。

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

  4. [PVの作成] ダイアログボックスでパラメーターを設定し、[作成] をクリックします。 下表に、各パラメーターを説明します。

    パラメーター

    説明

    PVタイプ

    [NAS] を選択します。

    NAS

    ボリューム名

    ボリュームの名前。 ボリューム名はクラスター内で一意である必要があります。

    pv-nas

    容量

    PV の容量。

    説明

    NASファイルシステムは無制限の容量を提供します。 このパラメーターは、NASファイルシステムのストレージ使用量を制限しませんが、PVの容量を定義します。

    20Gi

    アクセスモード

    ReadWriteManyまたはReadWriteOnceを選択できます。 デフォルト値: ReadWriteMany

    ReadWriteMany

    CNFSの有効化

    Container Network File System (CNFS) を有効にするかどうかを指定します。 CNFSを有効にした後、次の操作を実行する必要があります。

    有効にする

    マウントターゲットドメイン名

    CNFSが無効の場合は、このパラメーターを設定する必要があります。

    [マウントターゲットの選択] または [カスタム] を選択して、マウントするNASファイルシステムを設定できます。 マウントターゲットのドメイン名を表示する方法の詳細については、「マウント ターゲットの管理」をご参照ください。

    0c47 **** -mpk25.cn-shenzhen.nas.aliyuncs.co

    高度なオプション (オプション)

    マウントパス: NASファイルシステムのマウントパス。 マウントパスは、ルートディレクトリを示すスラッシュ (/) で始まる必要があります。 このパラメーターを設定すると、PVは指定されたサブディレクトリにマウントされます。

    • 指定されたサブディレクトリが存在しない場合、システムは自動的にNASファイルシステムにサブディレクトリを作成し、サブディレクトリをクラスターにマウントします。

    • このパラメーターを設定しない場合、NASファイルシステムのルートディレクトリがマウントされます。

    • Extreme NASファイルシステムをマウントする場合は、このパラメーターを /shareディレクトリのサブディレクトリに設定します。 例: /share/data

    /データ

    ポリシーの再利用: このパラメーターはデフォルトでDeleteに設定されています。 このパラメーターをRetainに設定することもできます。

    • 削除: 再利用ポリシーが削除されている場合は、archiveOnDeleteパラメーターを設定する必要があります。

      • archiveOnDeleteパラメーターをtrueに設定すると、PVCの削除後に関連するPVおよびNASファイルシステムの名前が変更されます。 関連するPVおよびNASファイルシステムは、PVCとともに削除されません。

      • archiveOnDeleteパラメーターをfalseに設定した場合、PVCを削除すると、関連するPVおよびNASファイルシステムも削除されます。

    • 保持: PVCを削除すると、関連するPVおよびNASファイルシステムは保持され、手動でのみ削除できます。

    データセキュリティの要件が高い場合は、[保持] ポリシーを使用して、ユーザーエラーによるデータ損失を防ぐことを推奨します。

    保持

    マウントオプション: NFSプロトコルのバージョンを含む、NASファイルシステムをマウントするためのオプションのパラメーター。 NFS v3の使用を推奨します。 Extreme NASファイルシステムはNFS v3のみをサポートします。 NFSプロトコルの詳細については、「NFS」をご参照ください。

    v3

    ラベル

    PVにラベルを追加します。

    pv-nas

    PVを作成した後、[Persistent Volumes] ページでPVを表示できます。

手順 2: PVC の作成

  1. 詳細ページの左側のナビゲーションウィンドウで、[ボリューム] > [ボリュームクレームの永続性] を選択します。

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

  3. [PVCの作成] ダイアログボックスで、パラメーターを設定します。 パラメーターを設定したら、[作成] をクリックします。

    パラメーター

    説明

    PVCタイプ

    [NAS] を選択します。

    NAS

    名前

    PVCの名前。 ボリューム名はクラスター内で一意である必要があります。

    pvc-nas

    割り当てモード

    この例では、Existing Volumesが選択されています。

    説明

    PVが作成されていない場合、[割り当てモード] パラメーターを [ボリュームの作成] に設定し、PVを作成するために必要なパラメーターを設定できます。

    既存のボリュームを選択します。

    既存のストレージクラス

    [PVの選択] をクリックします。 使用するPVを見つけて、[操作] 列の [選択] をクリックします。

    既存のボリューム

    容量

    PV の容量。

    説明
    • PVCによって要求される容量は、PVCに結合されるPVの容量を超えることはできない。

    20

    アクセスモード

    デフォルト値はReadWriteManyです。 値をReadWriteOnceまたはReadOnlyManyに設定することもできます。

    ReadWriteMany

ステップ3: アプリケーションの作成

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

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

  3. アプリケーションのパラメーターを設定します。 次に、[作成] をクリックします。

    次の表に、主要なパラメーターを示します。 他のパラメーターのデフォルト値を保持します。 詳細については、「デプロイを使用したステートレスアプリケーションの作成」をご参照ください。

    セクション

    パラメーター

    説明

    基本情報

    名前

    配置のカスタム名を入力します。 名前は、コンソールに表示されるフォーマット要件を満たす必要があります。

    テスト-nas

    レプリカ

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

    2

    コンテナ

    イメージ名

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

    anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6

    必要なリソース

    アプリケーションが必要とするvCoresの数とメモリ量を指定します。

    0.25 vCoresとメモリの0.5 GiB

    ボリューム

    [PVCの追加] をクリックし、パラメーターを設定します。

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

    • コンテナーパス: NASファイルシステムをマウントするコンテナーパスを指定します。

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

    • コンテナパス: /data

    image.png

  4. 次のコマンドを実行して、アプリケーションのデプロイの進行状況を照会します。

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

    2. [ポッド] タブで、ポッドの状態が [実行中] かどうかを確認します。

ステップ2: NASボリュームがデータを保持および共有できることを確認する

前の手順で作成したデプロイには、2つのポッドが含まれます。 2つのポッドは同じNASファイルシステムにマウントされます。 次のいずれかの方法を使用して、NASボリュームがデータを保持および共有できることを確認できます。

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

  • 一方のポッドにファイルを作成し、もう一方のポッドからファイルにアクセスします。 ファイルにアクセスできる場合は、データ共有が有効になります。

NASファイルシステムを使用してデータを永続化できることを確認する

  1. アプリケーションが存在するポッドを照会します。

    kubectl get pod 

    想定される出力:

    NAME                          READY   STATUS    RESTARTS   AGE
    nas-static-5b5cdb85f6-a****   1/1     Running   0          32s
    nas-static-c5bb4746c-b****    1/1     Running   0          32s
  2. ポッドにファイルを作成します。

    1. アプリケーションにマウントされている /dataパスにファイルが存在するかどうかを確認します。

      この例では、nas-static-5b5cdb85f6-a **** ポッドが使用されています。

      kubectl exec nas-static-5b5cdb85f6-a**** -- ls /data

      出力は返されません。 これは、/dataパスにファイルが存在しないことを示します。

    2. ポッドの /dataパスにnasという名前のファイルを作成します。

      kubectl exec nas-static-5b5cdb85f6-a**** -- touch /data/nas
  3. 他のポッドから作成したファイルにアクセスします。

    この例では、nas-static-5b5cdb85f6-b **** ポッドが使用されています。

    kubectl exec nas-static-5b5cdb85f6-b**** -- ls /data

    想定される出力:

    nas
  4. ポッドを再作成します。

    1. ポッドを削除します。

      kubectl delete pod nas-static-5b5cdb85f6-a****
    2. 別のコマンドラインインターフェイス (CLI) を開き、ポッドの削除と再作成の方法を確認します。

      kubectl get pod -w -l app=nginx
  5. ポッドの削除後もファイルが存在することを確認します。

    1. 再作成されたポッドの名前を照会します。

      kubectl get pod

      想定される出力:

      NAME                                  READY    STATUS    RESTARTS   AGE
      nas-static-5b5cdb85f6-c****   1/1     Running   0          32s
      nas-static-c5bb4746c-a****    1/1     Running   0          32s
    2. 再作成されたポッドの /dataパス内のファイルを照会します。

      この例では、nas-static-5b5cdb85f6-c **** ポッドが使用されています。

      kubectl exec nas-static-5b5cdb85f6-c**** -- ls /data

      想定される出力:

      nas

      /dataパスにnasファイルがまだ存在します。 これは、データがNASファイルシステムに永続化されることを示します。

NASファイルシステム内のデータがポッド間で共有できることを確認する

  1. アプリケーションが存在するポッドを照会します。

    kubectl get pod 

    想定される出力:

    NAME                          READY   STATUS    RESTARTS   AGE
    nas-static-5b5cdb85f6-n****   1/1     Running   0          32s
    nas-static-c5bb4746c-4****    1/1     Running   0          32s
  2. 2つのポッドの /dataパス内のファイルを照会します。

    kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data
    kubectl exec nas-static-c5bb4746c-4**** -- ls /data

    出力は返されません。 これは、/dataパスにファイルが存在しないことを示します。

  3. ポッドの /dataパスにnasという名前のファイルを作成します。

    この例では、nas-static-5b5cdb85f6-n **** ポッドが使用されています。

     kubectl exec nas-static-5b5cdb85f6-n**** -- touch /data/nas
  4. 2つのポッドの /dataパス内のファイルを照会します。

    1. nas-static-5b5cdb85f6-n **** ポッドの /dataパス内のファイルを照会します。

      kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data

      想定される出力:

      nas
    2. nas-static-c5bb4746c-4 **** ポッドの /dataパス内のファイルを照会します。

      kubectl exec nas-static-c5bb4746c-4**** -- ls /data

      想定される出力:

      nas

      一方のポッドの /dataパスにファイルを作成すると、もう一方のポッドの /dataパスにもファイルを見つけることができます。 これは、NASファイルシステムのデータが2つのポッドで共有されていることを示します。

関連ドキュメント