Alibaba Cloud が提供する Flexvolume プラグインを使用して、Alibaba Cloud NAS (Network Attached Storage) サービスを使用することができます。

始める前に

このサービスを使用する前に、Flexvolume プラグインを最新バージョンに更新する必要があります。

このタスクについて

Flexvolume プラグインにより、Alibaba Cloud NAS ボリュームを直接使用、または PV および PVC を作成して使用することができます。
パラメーターの説明
  • server: NAS ボリュームのマウントターゲット。
  • path: NAS ボリュームに接続するマウントディレクトリ。 サブディレクトリがサポートされています。 サブディレクトリが存在しない場合、システムは自動的にサブディレクトリを作成し、NAS ボリュームをサブディレクトリにマウントします。 NAS extreme の場合、指定されたパスは /share から始まる必要があります。
  • vers: NFS マウントプロトコルのバージョン。 バージョン 3 およびバージョン 4.0 がサポートされています。
  • mode: マウントディレクトリのアクセス権限。 マウントディレクトリが NAS ファイルシステムのルートディレクトリである場合、アクセス権限を設定できないことにご注意ください。 大量のデータが保存されたマウントディレクトリに mode パラメーターを設定すると、マウントディレクトリをクラスターへマウントする処理に非常に時間がかかったり、失敗する場合があります。
  • options: マウントパラメーター。 指定しない場合、規定値はバージョン 3 の nolock,tcp,noresvport と バージョン 4.0 の noresvport です。

ボリュームとして直接

nas-deploy.yaml ファイルを使用し、ポッドを作成します。

  1. 次の内容で nas-deploy.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: nas1
                mountPath: "/data"
          volumes:
          - name: "nas1"
            flexVolume:
              driver: "alicloud/nas"
              options:
                server: "0cd8b4a576-grs79.cn-hangzhou.nas.aliyuncs.com"
                path: "/k8s"
                vers: "3"
                options: "nolock,tcp,noresvport"
  2. 次のコマンドを実行し、ポッドを作成します。
    kubectl apply -f nas-deploy.yaml

PV および PVC を介して

  1. PV を作成します。
    コンソールまたは YAML ファイルを使用して、PV を作成することができます。
    • YAML ファイルによる 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-uih75.cn-hangzhou.nas.aliyuncs.com"
            path: "/k8s"
            vers: "3"
            options: "nolock,tcp,noresvport"
    • コンソールから PV を作成
      1. Container Service コンソール にログインします。
      2. 左側のナビゲーションウペインで、[クラスター] > [ボリューム]を選択し、[ボリューム及びボリュームクレーム] ページに移動します。
      3. [ボリューム] タブで [作成] をクリックします。
        永続ボリューム
      4. 表示されたダイアログボックスで、次のパラメーターを設定します。 PV を作成します。
        • ストレージタイプ: この例では、NAS を選択します。
        • ボリューム名: PV の名前。 ボリューム名はクラスター内で一意である必要があります。 この例では、pv-nas と入力します。
        • 容量: PV の容量。 容量が NAS ファイルシステムの容量を超えることはできません。
        • アクセスモード: デフォルトのモードは ReadWriteMany です。
        • マウントポイントドメイン名: NAS ファイルシステムをクラスターにマウントするために使用されるマウントポイントのアドレスを入力します。
        • パス: NAS ファイルシステム下のサブディレクトリ。サブディレクトリは、スラッシュ ( / ) で始まります。 指定すると、PV はサブディレクトリにマウントされます。
          • サブディレクトリが NAS ファイルシステムのルートディレクトリに存在しない場合、システムにより自動的にサブディレクトリが作成されます。
          • このパラメーターは省略可能です。 PV は、デフォルトで NAS ファイルシステムのルートディレクトリにマウントされます。
          • NAS extreme の場合、サブディレクトリは /share で始まります。
        • 権限: マウントディレクトリのアクセス権限を設定します。 たとえば、755、644、または 777 です。

          このパラメーターを設定できるのは、PV を NAS ファイルシステムのサブディレクトリにマウントする場合のみです。 NAS ファイルシステムのルートディレクトリにアクセス権限を設定することはできません。

          ディレクトリに多数のファイルがマウントされている場合は、このパラメーターを設定しないことを推奨します。 でなければ、chmod コマンドの実行に時間がかかる場合があります。

          PV を NAS ファイルシステムのサブディレクトリにマウントする場合、このアクセス権限パラメーターは省略可能です。
          • このパラメーターが設定されていない場合、デフォルトとして元のアクセス権限が使用されます。
          • アクセス許可を設定するときは、次の点にご注意ください。
            • Flexvolume v1.14.6.15-8d3b7e7-aliyun より前のバージョンでは、アクセス権限操作に再帰モードを使用します。 マウントディレクトリの下のすべてのファイルとディレクトリが変更されます。
            • Flexvolume v1.14.6.15-8d3b7e7-aliyun 以降のバージョンの場合、chmod (アクセス権の変更) の設定に基づいてアクセス権限操作を実行します。
        • chmod (アクセス権の変更): アクセス権限の変更方法を指定し、非再帰モードまたは再帰モードをサポートします。
          • 非再帰モード: アクセス権限の変更はマウントディレクトリでのみ有効であり、サブディレクトリと、配下のファイルは影響を受けません。
          • 再帰モード: アクセス権限の変更は、マウントディレクトリ、サブディレクトリ、および配下のファイルに対して有効になります。
          大量のデータを格納するマウントディレクトリに再帰モードを使用すると、chmod コマンドを実行してマウントディレクトリをクラスターにマウントする処理に非常に時間がかかり、失敗する場合もあります。 この操作を行う場合にはご注意ください。
        • バージョン: PV のバージョン。
        • タグ: PVにラベルを追加します。
      5. 設定完了後、[作成] をクリックします。
  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