まとめ
この記事では、Azure Files ストレージ クラスに推奨される mountOptions 設定について説明します。 これらの設定を使用して、パフォーマンスと信頼性を向上させる Kubernetes ストレージをプロビジョニングします。
推奨設定
サーバー メッセージ ブロック (SMB) 共有とネットワーク ファイル システム (NFS) 共有には、次の mountOptions 設定を使用します。
SMB シェア
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: azurefile-csi provisioner: file.csi.azure.com allowVolumeExpansion: true parameters: skuName: Premium_LRS # available values: Premium_LRS, Premium_ZRS, Standard_LRS, Standard_GRS, Standard_ZRS, Standard_RAGRS, Standard_RAGZRS reclaimPolicy: Delete volumeBindingMode: Immediate mountOptions: - dir_mode=0777 # modify this permission if you want to enhance the security - file_mode=0777 # modify this permission if you want to enhance the security - mfsymlinks # support symbolic links - cache=strict # https://linux.die.net/man/8/mount.cifs - nosharesock # reduces probability of reconnect race - actimeo=30 # reduces latency for metadata-heavy workload - nobrl # disable sending byte range lock requests to the server and for applications which have challenges with posix locks
これらのアクセス許可は、アプリケーションが必要とするよりも広範なアクセス許可を付与できます。 次の例のように、最初に最小特権のアプローチを使用することを検討してください。
dir_mode=0755、file_mode=0755、uid=1000、gid=1000。dir_mode=0777、file_mode=0777、uid=0、gid=0は、アプリケーションでルートまたはより広範なアクセスが必要な場合に適している可能性があります。NFS シェア
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: azurefile-csi-nfs provisioner: file.csi.azure.com parameters: protocol: nfs skuName: Premium_LRS # available values: Premium_LRS, Premium_ZRS reclaimPolicy: Delete volumeBindingMode: Immediate allowVolumeExpansion: true mountOptions: - nconnect=4 # improves performance by enabling multiple connections to share - noresvport # improves availability - actimeo=30 # reduces latency for metadata-heavy workloads
NFS の rsize オプションと wsize オプションの詳細については、「 読み取りおよび書き込みサイズの最適化オプション」を参照してください。
actimeoとnconnectのオプションは、次のMicrosoftドキュメントで詳細に分析されています。
注
マウント オプション (mountOptions) を構成する場所は、動的永続ボリュームと静的永続ボリュームのどちらをプロビジョニングするかによって異なります。 ストレージ クラスを使用して ボリュームを動的にプロビジョニング する場合は、ストレージ クラス オブジェクト (kind: StorageClass) にマウント オプションを指定します。 ボリュームを 静的にプロビジョニングする場合は、 PersistentVolume オブジェクト (kind: PersistentVolume) にマウント オプションを指定します。
ファイル共有をインライン ボリュームとしてマウントする場合は、Pod オブジェクト (kind: Pod) にマウント オプションを指定します。
References
Azure Files のベスト プラクティスについては、 Azure Files ストレージのプロビジョニングに関するページを参照してください。