Container Service for Kubernetes (ACK) が提供するContainer Storage Interface (CSI) プラグインを使用すると、File Storage NAS ボリュームのサブディレクトリにクォータを設定できます。 リソース割り当てを管理し、全体的なリソース使用率を改善するためにクォータを設定できます。 クォータに達すると、ボリュームがマウントされているサービスを中断することなく、動的ボリューム拡張を手動で実行できます。
前提条件
csi-pluginのイメージバージョンは1.18.8.45以降です。 csi-pluginのバージョンの詳細については、「csi-plugin」をご参照ください。
NASボリュームがサブディレクトリにマウントされます。
制限事項
キャパシティNASファイルシステムのみがクォータ制限をサポートしています。 NASファイルシステムの種類の詳細については、「NASファイルシステムの種類」をご参照ください。
静的にプロビジョニングされたNASボリュームは拡張できません。
サブディレクトリを使用してマウントされたボリュームに対してのみ、クォータを設定できます。
ファイルシステムごとに、最大500ディレクトリのクォータを作成できます。
ディレクトリに施行クォータを設定できます。 クォータを超えると、ディレクトリにデータを書き込むことができず、フロントエンドでIOErrorエラーが表示されます。 書き込み操作には、ファイルの長さを増やし、ファイルを作成し、サブディレクトリを作成し、特殊ファイルを作成し、ファイルを別のディレクトリに移動するために使用される操作が含まれます。
潜在的なセキュリティリスクを防ぐために、コアビジネス関連ディレクトリの制限付きクォータを作成する前に、制限付きクォータを評価してテストすることをお勧めします。
バックエンドでの非同期実行により、強制クォータが有効または無効になるまでには、特定の期間が必要です。 ほとんどの場合、時間は5〜15分の範囲です。
例:
次のYAMLテンプレートを使用してStorageClassを作成し、クォータ機能と動的拡張機能が有効になっているNASボリュームをプロビジョニングします。
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: alicloud-nas-quota-sc mountOptions: - nolock,tcp,noresvport - vers=3 parameters: volumeAs: subpath server: "xxx.cn-hangzhou.nas.aliyuncs.com:/" archiveOnDelete: "false" path: "/abc" volumeCapacity: "true" # The quota feature is enabled for a volume that is dynamically provisioned based on the StorageClass. provisioner: nasplugin.csi.alibabacloud.com reclaimPolicy: Delete allowVolumeExpansion: true # Enable dynamic volume expansion.
パラメーター
説明
mountOptions
NASファイルシステムのマウントオプションをmountOptionsフィールドに設定します。 たとえば、使用するNFSバージョンを指定できます。
volumeAs
[サブパス] または [ファイルシステム] を選択できます。 サブパスは、サブディレクトリがクラスターにマウントされていることを示します。 filesystemは、ファイルシステムがクラスターにマウントされていることを示します。
サーバー
NASファイルシステムのサブディレクトリを永続ボリューム (PV) としてマウントする場合、NASファイルシステムのマウント先を指定します。
archiveOnDelete
このパラメーターは、reclaimPolicyがDeleteに設定されている場合のバックエンドストレージのreclaimポリシーを指定します。 NASは共有ストレージサービスです。 データのセキュリティを確保するには、reclaimPolicyとarchiveOnDeleteの両方を設定する必要があります。 デフォルト値: true。
パス
マウントされているNASファイルシステムのサブディレクトリ。 Extreme NASファイルシステムをマウントする場合、パスは /shareで始まる必要があります。
volumeCapacity
このパラメーターは、クォータを設定するかどうかを指定します。 有効な値は true と false です。
説明allowVolumeExpansion
がtrueに設定されている場合、このパラメーター設定は有効にならず、クォータは常に有効になります。provisioner
ACKによって提供されるPVの提供者。
reclaimPolicy
PVを再利用するために使用されるポリシー。 有効な値:
Retain: PVとPVCが削除されたときにバックエンドストレージを保持します。 バックエンドストレージは、クラウドディスクであってもよい。
削除
: PVCが削除されると、バックエンドストレージとPVが自動的に削除されます。
allowVolumeExpansion
ボリューム拡張をサポートするかどうかを指定します。
説明NASファイルシステムのサブディレクトリにクォータを設定するStorageClassを作成するには、
volumeCapacity=true
またはallowVolumeExpansion=true
を設定してクォータ機能を有効にします。次のYAMLテンプレートを使用して、StatefulSetを作成します。 StatefulSetは、20 GiBのストレージを要求するPVCを使用します。
apiVersion: apps/v1 kind: StatefulSet metadata: name: nas-sts spec: selector: matchLabels: app: busybox serviceName: "busybox" replicas: 1 template: metadata: labels: app: busybox spec: containers: - name: busybox image: busybox command: - sleep - "3600" volumeMounts: - name: nas-pvc mountPath: /data volumeClaimTemplates: - metadata: name: nas-pvc spec: accessModes: [ "ReadWriteMany" ] storageClassName: "alicloud-nas-quota-sc" resources: requests: storage: 20Gi
GPUメモリ分離の検証
次のコマンドを実行して、10 GiBのデータを/データで作成されたStatefulSetにマウントされるディレクトリステップ2.
dd if=/dev/zero of=10G.txt bs=1M count=10000
5〜15分待ってから、サブディレクトリのクォータの詳細を確認します。
NASコンソールにログインします。
左側のナビゲーションウィンドウで、 .
使用するNASファイルシステムを見つけて、[操作] 列のアイコンをクリックします。 次に、[クォータ管理] をクリックします。
On theクォータ管理ページをクリックします。クォータの管理で、アクション列を作成します。
次の図は、サブディレクトリのクォータ制限が20 GiBであることを示しています。 使用されるストレージは9 GiBです。
20-GiBストレージが使い果たされると、サブディレクトリにさらにデータを書き込もうとすると、
[ディスククォータ超過]
エラーが表示されます。
クォータに達した場合は、手動で動的ボリューム拡張を実行できます。
次のコマンドを実行して、ボリュームを動的に拡張します。
説明動的ボリューム拡張は、ボリュームがマウントされているサービスを中断しません。
kubectl patch pvc nas-pvc-0 -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}'
次のコマンドを実行して、PVに関する情報を照会します。
kubectl get pv
期待される出力:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE nas-63c37cc2-b21e-4b56-b26f-**** 30Gi RWX Delete Bound default/nas-pvc-0 alicloud-nas-quota-sc 25m23s
次のコマンドを実行して、PVCに関する情報を照会します。
kubectl get pvc
期待される出力:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE nas-pvc-0 Bound nas-63c37cc2-b21e-4b56-b26f-**** 30Gi RWX alicloud-nas-quota-sc 25m10s