Apsara File Storage NAS (NAS) ファイルシステムにサブディレクトリを作成し、そのサブディレクトリをアプリケーション用に動的にプロビジョニングされた永続ボリューム (PV) にマッピングできます。 このトピックでは、動的にプロビジョニングされたNASボリュームをマウントする方法について説明します。
始める前に
Container Service for Kubernetes (ACK) クラスターが作成され、FlexVolumeプラグインがクラスターにインストールされます。 詳細については、「マネージド Kubernetes クラスターの作成」をご参照ください。
alicloud-nas-controllerコンポーネントがクラスターにデプロイされます。 詳細については、「プラグインのインストール」をご参照ください。
注意事項
アプリケーションテンプレートでsecurityContext.fsgroupパラメーターが設定されている場合、ボリュームのマウント後にkubeletがchmod
またはchown
操作を実行するため、時間の消費が増加します。
securityContext.fsgroupパラメーターが設定されている場合のマウントプロセスを高速化する方法の詳細については、「NASボリュームのマウントに時間がかかるのはなぜですか?」をご参照ください。
動的にプロビジョニングされたNASボリュームの作成
StorageClassを設定します。
サンプルコード:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: alicloud-nas mountOptions: - nolock,tcp,noresvport - vers=3 parameters: server: "23a9649583-i****.cn-shenzhen.nas.aliyuncs.com:/nasroot1/" driver: flexvolume provisioner: alicloud/nas reclaimPolicy: Delete
パラメーター
説明
mountOptions
PVのマウントオプション。 NASボリュームは、指定されたマウントオプションに基づいてマウントされます。
サーバー
PVのプロビジョニングに使用されるマウントターゲットのリスト。 形式はnfsurl1:/path1,nfsurl2:/path2です。 複数のサーバーが指定されている場合、このStorageClassによってプロビジョニングされたPVは、ラウンドロビン方式でサーバーを使用します。 Extreme NASファイルシステムの場合、パスは /shareで始まる必要があります。
ドライバー
FlexVolumeとNFSがサポートされています。 デフォルトのドライバはNFSです。
reclaimPolicy
PVの再利用ポリシー。 値を [保持] に設定することを推奨します。
値をDeleteに設定すると、PVにマップされたサブディレクトリの名前は、PVの削除後に自動的に変更されます。 たとえば、path-nameはarchived-path-nameに変更されます。
NASファイルシステムのサブディレクトリを削除する場合は、StorageClass設定で
archiveOnDelete
をfalseに設定します。
StatefulSetで動的にプロビジョニングされたNASボリュームを使用します。
次のサンプルコードを使用して、サービスとStatefulSetを作成します。
apiVersion: v1 kind: Service metadata: name: nginx labels: app: nginx spec: ports: - port: 80 name: web clusterIP: None selector: app: nginx --- apiVersion: apps/v1 kind: StatefulSet metadata: name: web spec: selector: matchLabels: app: nginx 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