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

Container Service for Kubernetes:静的にプロビジョニングされたNASボリュームのマウント

最終更新日:Nov 13, 2024

Alibaba Cloudが提供するFlexVolumeプラグインを使用して、Apsara File Storage NAS (NAS) ファイルシステムをContainer Service for Kubernetes (ACK) クラスターにマウントできます。 このトピックでは、静的にプロビジョニングされたNASボリュームをマウントする方法について説明します。

前提条件

  • NASファイルシステムが作成され、マウントターゲットがファイルシステムに追加されます。 NASファイルシステムを作成してマウントターゲットを追加するには、NASコンソールにログインします。 NASファイルシステムのマウントターゲットとクラスターは、同じ仮想プライベートクラウド (VPC) にデプロイされます。

  • FlexVolumeは最新バージョンにアップグレードされました。

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

背景情報

クラスタにFlexVolumeをインストールした後、永続ボリューム (PV) と永続ボリュームクレーム (PVC) を使用してNASファイルシステムをマウントできます。

手順

PVとPVCを使用してNASファイルシステムをマウントできます。

  1. PVを作成します。

    PVは、ACKコンソールまたはYAMLファイルを使用して作成できます。

    • YAM ファイルによる PV の作成

      次のnas-pv.yamlファイルを使用してPVを作成します。

      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: pv-nas
      spec:
        capacity:
          storage: 5Gi
        storageClassName: nas
        accessModes:
          - ReadWriteMany
        flexVolume:
          driver: "alicloud/nas"
          options:
            server: "0cd8b4a576-u****.cn-hangzhou.nas.aliyuncs.com"
            path: "/k8s"
            vers: "3"
            options: "nolock,tcp,noresvport"
    • ACKコンソールでPVを作成します。

      1. ACK コンソールにログインします。

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

      3. [クラスター] ページで、管理するクラスターを見つけます。 次に、クラスターの名前をクリックするか、[操作] 列の [詳細] をクリックします。

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

      5. [ボリューム] ページで、ページの右上隅にある [作成] をクリックします。

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

        パラメーター

        説明

        PVタイプ

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

        ボリューム名

        作成するPVの名前。 ボリューム名はクラスター内で一意である必要があります。 この例では、pv-nasが使用されます。

        ボリュームプラグイン

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

        容量

        作成するPVの容量。 PVの容量は、マウントするNASファイルシステムの容量を超えることはできません。

        アクセスモード

        デフォルト値: ReadWriteMany。

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

        NASファイルシステムをクラスターにマウントするために使用されるマウントターゲットのドメイン名。 NASファイルシステムのマウントターゲットを管理する方法の詳細については、「マウントターゲットの管理」をご参照ください。

        サブディレクトリ

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

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

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

        • Extreme NASファイルシステムのサブディレクトリを指定する場合、サブディレクトリは /shareで始まる必要があります。

        権限

        マウントされたディレクトリのアクセス権限。 たとえば、このパラメーターを 755、644 または 777 に設定できます。

        説明
        • アクセス権はサブディレクトリにのみ設定できます。

        • マウントされたディレクトリに大量のファイルが格納されている場合は、このパラメーターを設定しないことを推奨します。 そうしないと、chmodコマンドを実行するプロセスに過度の時間が必要になる可能性があります。

        マウントされたディレクトリがサブディレクトリの場合、このパラメーターはオプションです。

        • このパラメーターを設定しない場合、マウントされたディレクトリに対する元の権限が使用されます。

        • 権限を設定するときは、次の項目に注意してください。

          • V1.14.6.15-8d3b7e7-aliyunより前のバージョンのFlexVolumeでは、権限設定を構成するときに再帰モードを使用します。 マウントされたディレクトリの下にあるすべてのファイルとディレクトリに対する権限が変更されます。

          • FlexVolume V1.14.6.15-8d3b7e7-aliyun以降の場合、chmod (Change Mode) パラメーターを設定して権限設定を構成します。

        chmod (変更モード)

        アクセス権限の変更モード。 有効な値: 非再帰的および再帰的。

        • 非再帰: アクセス許可の変更は、マウントされたディレクトリにのみ適用されます。 マウントされたディレクトリ内のサブディレクトリおよびファイルは影響を受けません。

        • 再帰モード: アクセス許可の変更は、マウントされたディレクトリ、およびマウントされたディレクトリ内のサブディレクトリとファイルに適用されます。

          説明

          多数のファイルが含まれるマウントディレクトリに対して再帰モードを選択した場合、chmodコマンドの実行に時間がかかりすぎることがあります。 マウントまたはマウント解除操作が失敗する場合があります。 このパラメーターを設定するときは注意してください。

        バージョン

        NFSプロトコルのバージョン。 NFSv3の使用を推奨します。 Extreme NASファイルシステムはNFSv3のみをサポートします。

        ラベル

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

      7. [作成] をクリックします。

  2. PVCを作成します。

    次のnas-pvc.yamlファイルを使用してPVCを作成します。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-nas
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: nas
      resources:
        requests:
          storage: 5Gi
  3. ポッドを作成します。

    次のnas-pod.yamlファイルを使用してポッドを作成します。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nas-static
      labels:
        app: nginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx
            ports:
            - containerPort: 80
            volumeMounts:
              - name: pvc-nas
                mountPath: /data
          volumes:
            - name: pvc-nas
              persistentVolumeClaim:
                claimName: pvc-nas