日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

Azure NetApp Files バックエンドを設定します

共同作成者

提供されている構成例を使用して、 Azure NetApp Files ( ANF )を Astra Trident インストールのバックエンドとして設定する方法を説明します。

メモ Azure NetApp Files サービスでは、 100GB 未満のボリュームはサポートされません。100 GB のボリュームが小さい場合は、 Trident が自動的に作成します。
必要なもの

を設定して使用します "Azure NetApp Files の特長" バックエンドには次のものが必要です。

  • subscriptionID Azure NetApp Files を有効にしたAzureサブスクリプションから選択します。

  • tenantIDclientID`および `clientSecret から "アプリケーション登録" Azure Active Directory で、 Azure NetApp Files サービスに対する十分な権限がある。アプリケーション登録では、を使用する必要があります Owner または Contributor Azureで事前定義されているロール。

    ヒント Azure の組み込みロールの詳細については、を参照してください "Azure に関するドキュメント"
  • Azureがサポートされます location を1つ以上含むデータセンターを展開します "委任されたサブネット"。Trident 22.01の時点では location パラメータは、バックエンド構成ファイルの最上位にある必須フィールドです。仮想プールで指定された場所の値は無視されます。

  • Azure NetApp Files を初めて使用する場合や新しい場所で使用する場合は、いくつかの初期設定が必要です。を参照してください "クイックスタートガイド"

このタスクについて

Trident は、バックエンド構成(サブネット、仮想ネットワーク、サービスレベル、場所)に基づいて、要求された場所で利用可能な容量プールに ANF ボリュームを作成し、要求されたサービスレベルとサブネットに対応します。

メモ 注: Astra Trident は、手動の QoS 容量プールをサポートしていません。

バックエンド構成オプション

バックエンド設定オプションについては、次の表を参照してください。

パラメータ 説明 デフォルト

version

常に 1

storageDriverName

ストレージドライバの名前

「 azure-NetApp-files 」

backendName

カスタム名またはストレージバックエンド

ドライバ名 + "_" + ランダムな文字

subscriptionID

Azure サブスクリプションのサブスクリプション ID

tenantID

アプリケーション登録からのテナント ID

clientID

アプリケーション登録からのクライアント ID

clientSecret

アプリケーション登録からのクライアントシークレット

serviceLevel

の1つ StandardPremium`または `Ultra

"" (ランダム)

location

新しいボリュームを作成する Azure の場所の名前

resourceGroups

検出されたリソースをフィルタリングするためのリソースグループのリスト

"[]" (フィルタなし)

netappAccounts

検出されたリソースをフィルタリングするためのネットアップアカウントのリスト

"[]" (フィルタなし)

capacityPools

検出されたリソースをフィルタリングする容量プールのリスト

"[]" (フィルタなし、ランダム)

virtualNetwork

委任されたサブネットを持つ仮想ネットワークの名前

""

subnet

に委任されたサブネットの名前 Microsoft.Netapp/volumes

""

networkFeatures

ボリューム用のVNet機能のセットです。の場合もあります Basic または Standard

""

nfsMountOptions

NFS マウントオプションのきめ細かな制御。

"nfsvers=3 "

limitVolumeSize

要求されたボリュームサイズがこの値を超えている場合はプロビジョニングが失敗します

"" (デフォルトでは適用されません)

debugTraceFlags

トラブルシューティング時に使用するデバッグフラグ。例: \{"api": false, "method": true, "discovery": true}。トラブルシューティングを行って詳細なログダンプが必要な場合を除き、このオプションは使用しないでください。

null

警告 PVC の作成時に「 No capacity pools found 」エラーが発生した場合、アプリケーション登録に必要な権限とリソース(サブネット、仮想ネットワーク、容量プール)が関連付けられていない可能性があります。Astra Trident は、デバッグが有効なときにバックエンドが作成されたときに、検出した Azure リソースをログに記録します。適切なロールが使用されているかどうかを確認してください。
メモ NFSバージョン4.1を使用してボリュームをマウントする場合は、を追加します nfsvers=4 カンマで区切って複数のマウントオプションリストを指定し、NFS v4.1を選択します。ストレージクラスで設定されたマウントオプションは、バックエンド構成ファイルで設定されたマウントオプションよりも優先されます。
メモ "Network Features(ネットワーク機能)" 機能はすべての地域で一般に利用できるわけではなく、サブスクリプションで有効にする必要があります。を指定する networkFeatures この機能が有効になっていない場合、Tridentで原因 ボリュームのプロビジョニングが失敗します。

の値 resourceGroupsnetappAccountscapacityPoolsvirtualNetwork`および `subnet 短縮名または完全修飾名を使用して指定できます。省略形は同じ名前の複数のリソースに一致している可能性があるため、ほとんどの場合は完全修飾名を使用することを推奨します。。 resourceGroupsnetappAccounts`および `capacityPools 値は、検出されたリソースのセットをこのストレージバックエンドで使用可能なリソースに制限するフィルタであり、任意の組み合わせで指定できます。完全修飾名の形式は次のとおりです。

を入力します の形式で入力し

リソースグループ

< リソースグループ >

ネットアップアカウント

< リソースグループ >/< ネットアップアカウント >

容量プール

< リソースグループ >/< ネットアップアカウント >/< 容量プール >

仮想ネットワーク

< リソースグループ >/< 仮想ネットワーク >

サブネット

<resource group>/< 仮想ネットワーク >/< サブネット >

構成ファイルの特別なセクションで次のオプションを指定することで、各ボリュームのデフォルトのプロビジョニング方法を制御できます。以下の設定例を参照してください。

パラメータ 説明 デフォルト

exportRule

新しいボリュームのエクスポートルール

"0.0.0.0/0 "

snapshotDir

.snapshot ディレクトリの表示を制御します

いいえ

size

新しいボリュームのデフォルトサイズ

" 100G "

unixPermissions

新しいボリュームの UNIX 権限( 8 進数の 4 桁)

"" (プレビュー機能、サブスクリプションでホワイトリスト登録が必要)

exportRule CIDR表記のIPv4アドレスまたはIPv4サブネットの任意の組み合わせをカンマで区切って指定する必要があります。

メモ ANF バックエンドに作成されたすべてのボリュームに対して、ストレージプールに含まれるすべてのラベルが、プロビジョニング時にストレージボリュームにコピーされます。ストレージ管理者は、ストレージプールごとにラベルを定義し、ストレージプール内に作成されたすべてのボリュームをグループ化できます。これにより、バックエンド構成で提供されるカスタマイズ可能な一連のラベルに基づいてボリュームを簡単に区別できます。

例 1 :最小限の構成

これは、バックエンドの絶対的な最小構成です。この構成では、 ANF に委譲されたネットアップアカウント、容量プール、サブネットがすべて検出され、それらのプールまたはサブネットの 1 つに新しいボリュームがランダムに配置されます。

この構成は、 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 定義は、上記のストレージプールを参照してください。を使用します parameters.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

次の手順

バックエンド構成ファイルを作成したら、次のコマンドを実行します。

tridentctl create backend -f <backend-file>

バックエンドの作成に失敗した場合は、バックエンドの設定に何か問題があります。次のコマンドを実行すると、ログを表示して原因を特定できます。

tridentctl logs

構成ファイルで問題を特定して修正したら、 create コマンドを再度実行できます。