Azure NetApp Files バックエンド構成のオプションと例
ANF用のNFSとSMBのバックエンド構成オプションについて説明し、設定例を確認してください。
Astra Tridentは、バックエンド構成(サブネット、仮想ネットワーク、サービスレベル、場所)を使用して、要求された場所で利用可能で、要求されたサービスレベルとサブネットに一致する容量プールにANFボリュームを作成します。
Astra Trident は、手動 QoS 容量プールをサポートしていません。 |
バックエンド構成オプション
ANFバックエンドには次の設定オプションがあります。
パラメータ | 説明 | デフォルト |
---|---|---|
|
常に 1 |
|
|
ストレージドライバの名前 |
「 azure-NetApp-files 」 |
|
カスタム名またはストレージバックエンド |
ドライバ名 + "_" + ランダムな文字 |
|
Azure サブスクリプションのサブスクリプション ID |
|
|
アプリケーション登録からのテナント ID |
|
|
アプリケーション登録からのクライアント ID |
|
|
アプリケーション登録からのクライアントシークレット |
|
|
の1つ |
"" (ランダム) |
|
新しいボリュームを作成する Azure の場所の名前 |
|
|
検出されたリソースをフィルタリングするためのリソースグループのリスト |
"[]" (フィルタなし) |
|
検出されたリソースをフィルタリングするためのネットアップアカウントのリスト |
"[]" (フィルタなし) |
|
検出されたリソースをフィルタリングする容量プールのリスト |
"[]" (フィルタなし、ランダム) |
|
委任されたサブネットを持つ仮想ネットワークの名前 |
"" |
|
に委任されたサブネットの名前 |
"" |
|
ボリューム用のVNet機能のセットです。の場合もあります |
"" |
|
NFS マウントオプションのきめ細かな制御。 |
"nfsvers=3 " |
|
要求されたボリュームサイズがこの値を超えている場合はプロビジョニングが失敗します |
"" (デフォルトでは適用されません) |
|
トラブルシューティング時に使用するデバッグフラグ。例: |
null |
|
NFSボリュームまたはSMBボリュームの作成を設定 |
|
ネットワーク機能の詳細については、を参照してください "Azure NetApp Files ボリュームのネットワーク機能を設定します"。 |
必要な権限とリソース
PVCの作成時に「No capacity pools found」エラーが発生した場合、アプリケーション登録に必要な権限とリソース(サブネット、仮想ネットワーク、容量プール)が関連付けられていない可能性があります。デバッグが有効になっている場合、Astra Tridentはバックエンドの作成時に検出されたAzureリソースをログに記録します。適切なロールが使用されていることを確認します。
の値 resourceGroups
、 netappAccounts
、 capacityPools
、 virtualNetwork`および `subnet
短縮名または完全修飾名を使用して指定できます。ほとんどの場合、短縮名は同じ名前の複数のリソースに一致する可能性があるため、完全修飾名を使用することを推奨します。
。 resourceGroups
、 netappAccounts`および `capacityPools
値は、検出されたリソースのセットをこのストレージバックエンドで使用可能なリソースに制限するフィルタであり、任意の組み合わせで指定できます。完全修飾名の形式は次のとおりです。
を入力します | の形式で入力し |
---|---|
リソースグループ |
< リソースグループ > |
ネットアップアカウント |
< リソースグループ >/< ネットアップアカウント > |
容量プール |
< リソースグループ >/< ネットアップアカウント >/< 容量プール > |
仮想ネットワーク |
< リソースグループ >/< 仮想ネットワーク > |
サブネット |
<resource group>/< 仮想ネットワーク >/< サブネット > |
ボリュームのプロビジョニング
構成ファイルの特別なセクションで次のオプションを指定することで、デフォルトのボリュームプロビジョニングを制御できます。を参照してください 構成例 を参照してください。
パラメータ | 説明 | デフォルト |
---|---|---|
|
新しいボリュームに対するエクスポートルール |
"0.0.0.0/0 " |
|
.snapshot ディレクトリの表示を制御します |
いいえ |
|
新しいボリュームのデフォルトサイズ |
" 100G " |
|
新しいボリュームのUNIX権限(8進数の4桁)。 |
"" (プレビュー機能、サブスクリプションでホワイトリスト登録が必要) |
ANFバックエンドで作成されたすべてのボリュームに対して、Astra Tridentは、ストレージプール上にあるラベルを、プロビジョニング時にストレージボリュームにコピーします。ストレージ管理者は、ストレージプールごとにラベルを定義し、ストレージプール内に作成されたすべてのボリュームをグループ化できます。これは、バックエンド構成で提供されるカスタマイズ可能な一連のラベルに基づいてボリュームを区別するのに便利です。 |
構成例
例 1 :最小限の構成
これは、バックエンドの絶対的な最小構成です。この構成では、 ANF に委譲されたネットアップアカウント、容量プール、サブネットがすべて検出され、それらのプールまたはサブネットの 1 つに新しいボリュームがランダムに配置されます。理由 nasType
は省略されています nfs
デフォルトが適用され、バックエンドがNFSボリュームにプロビジョニングされます。
この構成は、 ANF の利用を開始して何を試してみるときに理想的ですが、実際には、プロビジョニングするボリュームの範囲をさらに設定することを検討しています。
{ "version": 1, "storageDriverName": "azure-netapp-files", "subscriptionID": "9f87c765-4774-fake-ae98-a721add45451", "tenantID": "68e4f836-edc1-fake-bff9-b2d865ee56cf", "clientID": "dd043f63-bf8e-fake-8076-8de91e5713aa", "clientSecret": "SECRET", "location": "eastus" }
例 2 :容量プールフィルタを使用した特定のサービスレベル設定
このバックエンド構成では、Azureにボリュームが配置されます eastus
の場所 Ultra
容量プール:Astra Trident は、 ANF に委譲されたすべてのサブネットをその場所で自動的に検出し、いずれかのサブネットに新しいボリュームをランダムに配置します。
{ "version": 1, "storageDriverName": "azure-netapp-files", "subscriptionID": "9f87c765-4774-fake-ae98-a721add45451", "tenantID": "68e4f836-edc1-fake-bff9-b2d865ee56cf", "clientID": "dd043f63-bf8e-fake-8076-8de91e5713aa", "clientSecret": "SECRET", "location": "eastus", "serviceLevel": "Ultra", "capacityPools": [ "application-group-1/account-1/ultra-1", "application-group-1/account-1/ultra-2" ], }
例 3 :高度な設定
このバックエンド構成は、ボリュームの配置を単一のサブネットにまで適用する手間をさらに削減し、一部のボリュームプロビジョニングのデフォルト設定も変更します。
{ "version": 1, "storageDriverName": "azure-netapp-files", "subscriptionID": "9f87c765-4774-fake-ae98-a721add45451", "tenantID": "68e4f836-edc1-fake-bff9-b2d865ee56cf", "clientID": "dd043f63-bf8e-fake-8076-8de91e5713aa", "clientSecret": "SECRET", "location": "eastus", "serviceLevel": "Ultra", "capacityPools": [ "application-group-1/account-1/ultra-1", "application-group-1/account-1/ultra-2" ], "virtualNetwork": "my-virtual-network", "subnet": "my-subnet", "networkFeatures": "Standard", "nfsMountOptions": "vers=3,proto=tcp,timeo=600", "limitVolumeSize": "500Gi", "defaults": { "exportRule": "10.0.0.0/24,10.0.1.0/24,10.0.2.100", "snapshotDir": "true", "size": "200Gi", "unixPermissions": "0777" } }
例 4 :仮想ストレージプールの構成
このバックエンド構成では、 1 つのファイルに複数のストレージプールを定義します。これは、異なるサービスレベルをサポートする複数の容量プールがあり、それらを表すストレージクラスを Kubernetes で作成する場合に便利です。
{ "version": 1, "storageDriverName": "azure-netapp-files", "subscriptionID": "9f87c765-4774-fake-ae98-a721add45451", "tenantID": "68e4f836-edc1-fake-bff9-b2d865ee56cf", "clientID": "dd043f63-bf8e-fake-8076-8de91e5713aa", "clientSecret": "SECRET", "location": "eastus", "resourceGroups": ["application-group-1"], "networkFeatures": "Basic", "nfsMountOptions": "vers=3,proto=tcp,timeo=600", "labels": { "cloud": "azure" }, "location": "eastus", "storage": [ { "labels": { "performance": "gold" }, "serviceLevel": "Ultra", "capacityPools": ["ultra-1", "ultra-2"], "networkFeatures": "Standard" }, { "labels": { "performance": "silver" }, "serviceLevel": "Premium", "capacityPools": ["premium-1"] }, { "labels": { "performance": "bronze" }, "serviceLevel": "Standard", "capacityPools": ["standard-1", "standard-2"] } ] }
ストレージクラスの定義
次のようになります StorageClass
定義は、上記のストレージプールを参照してください。
を使用した定義の例 parameter.selector
フィールド
を使用します parameter.selector
を指定できます StorageClass
ボリュームをホストするために使用される仮想プール。ボリュームには、選択したプールで定義された要素があります。
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: gold provisioner: csi.trident.netapp.io parameters: selector: "performance=gold" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: silver provisioner: csi.trident.netapp.io parameters: selector: "performance=silver" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: bronze provisioner: csi.trident.netapp.io parameters: selector: "performance=bronze" allowVolumeExpansion: true
SMBボリュームの定義例
を使用します nasType
、 `node-stage-secret-name`および `node-stage-secret-namespace`を使用して、SMBボリュームを指定し、必要なActive Directoryクレデンシャルを指定できます。
例1:デフォルトネームスペースの基本設定
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: anf-sc-smb provisioner: csi.trident.netapp.io parameters: backendType: "azure-netapp-files" trident.netapp.io/nasType: "smb" csi.storage.k8s.io/node-stage-secret-name: "smbcreds" csi.storage.k8s.io/node-stage-secret-namespace: "default"
例2:ネームスペースごとに異なるシークレットを使用する
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: anf-sc-smb provisioner: csi.trident.netapp.io parameters: backendType: "azure-netapp-files" trident.netapp.io/nasType: "smb" csi.storage.k8s.io/node-stage-secret-name: "smbcreds" csi.storage.k8s.io/node-stage-secret-namespace: ${pvc.namespace}
例3:ボリュームごとに異なるシークレットを使用する
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: anf-sc-smb provisioner: csi.trident.netapp.io parameters: backendType: "azure-netapp-files" trident.netapp.io/nasType: "smb" csi.storage.k8s.io/node-stage-secret-name: ${pvc.name} csi.storage.k8s.io/node-stage-secret-namespace: ${pvc.namespace}
nasType: "smb" SMBボリュームをサポートするプールでフィルタリングします。 nasType: "nfs"` または nasType: "null" NFSプールに対してフィルタを適用します。
|
バックエンドを作成します
バックエンド構成ファイルを作成したら、次のコマンドを実行します。
tridentctl create backend -f <backend-file>
バックエンドの作成に失敗した場合は、バックエンドの設定に何か問題があります。次のコマンドを実行すると、ログを表示して原因を特定できます。
tridentctl logs
構成ファイルで問題を特定して修正したら、 create コマンドを再度実行できます。