ここでは、NAS ファイルシステムにサブディレクトリを作成し、このサブディレクトリを使用して動的 PV を作成します。

始める前に

flexvolume ドライバーが既にクラスターにインストールされていること。

alicloud-nas-controller がインストールされていること。 詳細については、「プラグインのインストール」をご参照ください。

動的 PV の作成

  1. StorageClass を作成します。
    サンプル設定は次のとおりです。
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-nas
    mountOptions:
    - nolock,tcp,noresvport
    - vers=3
    parameters:
      server: "23a9649583-iaq37.cn-shenzhen.nas.aliyuncs.com:/nasroot1/"
      driver: flexvolume
    provisioner: alicloud/nas
    reclaimPolicy: Delete
    • MountOptions: PV のマウントパラメーター。
    • server: NAS ボリュームのマウントポイント。 形式は nfsurl1:/path1,nfsurl2:/path2 です。 複数のサーバーが設定されている場合、この StorageClass を介して作成された PV は、上記のサーバーをラウンドロビン方式で使用します。 NAS extreme の場合、パスは /share で始まる必要があります。
    • driver: flexvolume および NFS をサポートします。 デフォルトは NFS です。
    • reclaimPolicy: PVの再要求ポリシー。 Retain の使用を推奨します。
      • このパラメーターを Delete に設定した場合、PV を削除すると、PV に直接対応する NAS ディレクトリの名前が自動的に変更されます。 例えば、path-namearchived-path-name に変更されます。
      • PV に対応する NAS ディレクトリを削除する必要がある場合は、StorageClass 設定で archiveOnDeletefalse に設定します。
  2. 動的 PV を使用します。
    apiVersion: v1
    kind: Service
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      ports:
      - port: 80
        name: web
      clusterIP: None
      selector:
        app: nginx
    ---
    apiVersion: apps/v1beta1
    kind: StatefulSet
    metadata:
      name: web
    spec:
      serviceName: "nginx"
      replicas: 5
      volumeClaimTemplates:
      - metadata:
          name: html
        spec:
          accessModes:
            - ReadWriteOnce
          storageClassName: alicloud-nas
          resources:
            requests:
              storage: 2Gi
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:alpine
            volumeMounts:
            mountPath: "/data"
              name: html