ストレージクラスを設定する
https://kubernetes.io/docs/concepts/storage/storage-classes/["Kubernetes StorageClassオブジェクト"^]はプロビジョナーを識別し、プロビジョナーにボリュームのプロビジョニング方法を指示します。このセクションでは、Tridentをプロビジョナーとして指定するKubernetes StorageClassオブジェクトの構成方法を説明します。
StorageClassオブジェクトを作成します
FSx for ONTAP 用の StorageClass を作成すると、Trident はバックエンド構成を自動的に作成します。
|
|
ストレージバックエンドを手動で構成する場合は、[create-a-kubernetes-storageclass-without-automatic-backend-configuration]セクションを参照して、Tridentバックエンドとストレージクラスを個別に作成してください。 |
必須のStorageClassパラメータを指定します
StorageClassの作成時に定義する必要がある次の3つのパラメータ:
| パラメータ | 必須 | を入力します | 説明 |
|---|---|---|---|
|
はい。 |
文字列 |
FSx for NetApp ONTAP ファイルシステム ID |
'torageDriverName' |
はい。 |
文字列 |
Trident ストレージ ドライバ(例: |
|
はい。 |
文字列 |
ONTAP クレデンシャルを含む FSx for ONTAP の Kubernetes Secret の名前 |
オプションのパラメータを指定します
オプションのバックエンドパラメータはStorageClassを介して渡すことができます。StorageClass `parameters`セクションで、すべてのオプション値を文字列として定義します。バックエンドパラメータの完全なリストについては、以下を参照してください:FSx for NetApp ONTAP バックエンド構成
StorageClass設定ファイルの例。
次の例は、自動バックエンド構成をトリガーするStorageClassを示しています。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ontap-fsx-demo
annotations:
description: "Demo StorageClass for FSx for NetApp ONTAP"
provisioner: csi.trident.netapp.io
parameters:
fsxFilesystemID: "fs-0abc123"
storageDriverName: "ontap-nas"
credentialsName: trident-fsx-credentials
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
{
"apiVersion": "storage.k8s.io/v1",
"kind": "StorageClass",
"metadata": {
"name": "ontap-fsx-demo",
"annotations": {
"description": "Demo StorageClass for FSx for NetApp ONTAP"
}
},
"provisioner": "csi.trident.netapp.io",
"parameters": {
"fsxFilesystemID": "fs-0abc123",
"storageDriverName": "ontap-nas",
"credentialsName": "trident-fsx-credentials"
},
"allowVolumeExpansion": true,
"reclaimPolicy": "Delete",
"volumeBindingMode": "Immediate"
}
StorageClassを作成します
設定ファイルを作成したら、次のコマンドを実行してストレージクラスを作成します。
kubectl create -f storage-class-ontapnas.yaml
KubernetesとTridentの両方で「basic-csi」ストレージクラスが表示され、Tridentがバックエンドでプールを検出していることを確認します。
kubectl get sc basic-csi
NAME PROVISIONER AGE basic-csi csi.trident.netapp.io 15h
StorageClassを適用すると、Tridentは自動的にバックエンドを作成します。その後、このStorageClassを参照するPersistentVolumeClaimsを作成できます。
バックエンド構成ステータスを確認する
Tridentは、バックエンド作成の結果をStorageClassアノテーションに記録します。
| アノテーション | 説明 |
|---|---|
|
構成結果(( |
|
詳細なステータスまたはエラーメッセージ |
|
内部コンフィギュレータリソースの名前 |
|
StorageClass が Trident によって管理されていることを示します |
|
このバックエンド用に作成されたストレージプール |
ステータスを確認するには、次のコマンドを実行します:
kubectl get storageclass ontap-fsx-demo -o yaml
`trident.netapp.io/configuratorStatus`が `Success`に設定されていることを確認します。値が `Failure`の場合は、 `trident.netapp.io/configuratorMessage`でエラーを確認してください。
FSxNファイルシステムを追加する
同じStorageClassを使い続けながら追加のストレージ容量が必要な場合は、追加の FSxN ファイル システム ID を追加します。
StorageClassを編集し、次の注釈を追加します:
metadata:
annotations:
trident.netapp.io/additionalFsxNFileSystemID: '["fs-xxxxxxxxxxxxxxxxxx"]'
変更を適用した後、Tridentはバックエンド構成を更新し、StorageClassアノテーションを更新します。
運用上の考慮事項と制限事項
-
自動バックエンド構成を持つStorageClassを削除すると、通常、関連するTridentバックエンドが削除されます。これにより、ストレージ接続が阻害され、実行中のワークロードが中断される可能性があります。管理対象のStorageClassを削除する前に、その影響を検証してください。
-
自動バックエンド設定は AWS FSx for NetApp ONTAP でのみサポートされます。
自動バックエンド構成なしでKubernetes StorageClassを作成する
TridentバックエンドとStorageClassを別々に作成する場合は、次の手順に従ってください。
自動バックエンド構成の仕組みを理解する
Tridentは、StorageClass定義からバックエンド構成を取得します。StorageClassを適用すると、Tridentは必要なパラメータを検証し、バックエンドを作成し、StorageClassにステータスを付けて注釈を付けます。
Trident は VolumeSnapshotClass を一度だけ作成します。Trident は、その後の StorageClasses に対して同じ VolumeSnapshotClass を再利用します。
Tridentバックエンドを作成する
Tridentバックエンドを作成するには、JSON形式またはYAML形式で設定ファイルを作成する必要があります。ファイルには、使用するストレージの種類(NASまたはSAN)、ファイルシステム、取得元のSVM、およびその認証方法を指定する必要があります。次の例は、NASベースのストレージを定義し、AWSシークレットを使用して使用するSVMのクレデンシャルを保存する方法を示しています:
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-ontap-nas
namespace: trident
spec:
version: 1
storageDriverName: ontap-nas
backendName: tbc-ontap-nas
svm: svm-name
aws:
fsxFilesystemID: fs-xxxxxxxxxx
credentials:
name: "arn:aws:secretsmanager:us-west-2:xxxxxxxx:secret:secret-name"
type: awsarn
{
"apiVersion": "trident.netapp.io/v1",
"kind": "TridentBackendConfig",
"metadata": {
"name": "backend-tbc-ontap-nas"
"namespace": "trident"
},
"spec": {
"version": 1,
"storageDriverName": "ontap-nas",
"backendName": "tbc-ontap-nas",
"svm": "svm-name",
"aws": {
"fsxFilesystemID": "fs-xxxxxxxxxx"
},
"managementLIF": null,
"credentials": {
"name": "arn:aws:secretsmanager:us-west-2:xxxxxxxx:secret:secret-name",
"type": "awsarn"
}
}
}
FSx for ONTAPドライバの詳細
次のドライバを使用して、TridentとAmazon FSx for NetApp ONTAPを統合できます。
| ドライバー名 | 説明 |
|---|---|
「 ontap - san 」 |
プロビジョニングされた各PVは、独自のAmazon FSx for NetApp ONTAPボリューム内のLUNです。ブロックストレージに推奨されます。 |
「 ONTAP - NAS 」 |
プロビジョニングされた各PVは、完全なAmazon FSx for NetApp ONTAP ボリュームです。NFSおよびSMBに推奨されます。 |
「 ONTAP - SAN - エコノミー」 |
プロビジョニングされた各PVは、Amazon FSx for NetApp ONTAP ボリュームあたりの設定可能な数のLUNを持つLUNです。 |
「 ONTAP - NAS - エコノミー」 |
プロビジョニングされた各PVはqtreeであり、Amazon FSx for NetApp ONTAPボリュームあたりのqtree数は設定可能です。 |
「 ONTAP-NAS-flexgroup 」 |
プロビジョニングされた各PVは、完全なAmazon FSx for NetApp ONTAP FlexGroupボリュームです。 |
バックエンドを作成します
設定ファイルを作成した後、以下のコマンドを実行して、Tridentバックエンド構成(TBC)を作成および検証します:
-
YAMLファイルからTridentバックエンド構成(TBC)を作成し、次のコマンドを実行します。
kubectl create -f backendconfig.yaml -n tridenttridentbackendconfig.trident.netapp.io/backend-tbc-ontap-nas created
-
Tridentバックエンド構成(TBC)が正常に作成されたことを確認します。
Kubectl get tbc -n tridentNAME BACKEND NAME BACKEND UUID PHASE STATUS backend-tbc-ontap-nas tbc-ontap-nas 933e0071-66ce-4324-b9ff-f96d916ac5e9 Bound Success
その他の構成オプションの詳細については、以下の[Backend-advanced-configuration-and-examples]セクションを参照してください。
自動バックエンド構成*なし*でストレージクラスを構成する
以下は、TridentおよびFSx for ONTAPで使用するストレージクラス構成の例です。
NFS用ストレージクラス
この例を使用して、NFS を使用するボリュームの StorageClass を設定できます(属性の全リストについては、以下の Trident 属性セクションを参照してください):
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ontap-gold
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-nas"
provisioningType: "thin"
snapshots: "true"
iSCSI用ストレージクラス
この例を使用して、iSCSIを使用するボリュームのStorageClassを設定します:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ontap-gold
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-san"
provisioningType: "thin"
snapshots: "true"
NFSv3とAWS Bottlerocketを使用したストレージクラス
AWS BottlerocketでNFSv3ボリュームをプロビジョニングするには、必要なをストレージクラスに追加し `mountOptions`ます。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ontap-gold
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-nas"
media: "ssd"
provisioningType: "thin"
snapshots: "true"
mountOptions:
- nfsvers=3
- nolock
Trident StorageClass属性
これらのパラメータは、特定のタイプのボリュームのプロビジョニングに使用する Trident で管理されているストレージプールを決定します。
| 属性 | を入力します | 値 | 提供 | リクエスト | でサポートされます |
|---|---|---|---|---|---|
メディア ^1 |
文字列 |
HDD 、ハイブリッド、 SSD |
プールにはこのタイプのメディアが含まれています。ハイブリッドは両方を意味します |
メディアタイプが指定されました |
ONTAPNAS 、 ONTAPNAS エコノミー、 ONTAP-NAS-flexgroup 、 ONTAPSAN 、 solidfire-san-SAN 、 solidfire-san-SAN のいずれかに対応しています |
プロビジョニングタイプ |
文字列 |
シン、シック |
プールはこのプロビジョニング方法をサポートします |
プロビジョニング方法が指定されました |
シック:All ONTAP ;thin:All ONTAP & solidfire-san-SAN |
backendType |
文字列 |
ontap-nas、ontap-nas-economy、ontap-nas-flexgroup、ontap-san、solidfire-san、azure-netapp-files、ontap-san-economy |
プールはこのタイプのバックエンドに属しています |
バックエンドが指定されて |
すべてのドライバ |
Snapshot |
ブール値 |
true false |
プールは、 Snapshot を含むボリュームをサポートします |
Snapshot が有効なボリューム |
ontap-nas、ontapさん、solidfireさん |
クローン |
ブール値 |
true false |
プールはボリュームのクローニングをサポートします |
クローンが有効なボリューム |
ontap-nas、ontapさん、solidfireさん |
暗号化 |
ブール値 |
true false |
プールでは暗号化されたボリュームをサポート |
暗号化が有効なボリューム |
ONTAP-NAS 、 ONTAP-NAS-エコノミー 、 ONTAP-NAS-FlexArray グループ、 ONTAP-SAN |
IOPS |
整数 |
正の整数 |
プールは、この範囲内で IOPS を保証する機能を備えています |
ボリュームで IOPS が保証されました |
solidfire - SAN |
1:ONTAP SelectまたはFSx for ONTAPシステムではサポートされていません
ストレージクラスとパラメータおよびパラメータとの連携によるTridentによるボリュームのプロビジョニング方法の詳細については PersistentVolumeClaim、を参照してください"Kubernetes オブジェクトと Trident オブジェクト"。
ストレージクラスを作成します
StorageClassを設定したら、Kubernetesで作成できます。
-
これはKubernetesオブジェクトなので、
kubectlをクリックしてKubernetesで作成します。kubectl create -f storage-class-ontapnas.yaml -
KubernetesとTridentの両方で「basic-csi」ストレージクラスが表示され、Tridentがバックエンドでプールを検出していることを確認します。
kubectl get sc basic-csi
NAME PROVISIONER AGE basic-csi csi.trident.netapp.io 15h
SMBボリュームのプロビジョニング
SMB ボリュームは、 `ontap-nas`ドライバを使用してプロビジョニングできます。ただし、そのためには以下の手順を完了する必要があります:"SMBボリュームをプロビジョニングする準備をします"。
バックエンドの高度な設定と例
バックエンド設定オプションについては、次の表を参照してください。
| パラメータ | 説明 | 例 |
|---|---|---|
「バージョン」 |
常に 1 |
|
'torageDriverName' |
ストレージドライバの名前 |
|
backendName` |
カスタム名またはストレージバックエンド |
ドライバ名+"_"+ dataLIF |
「管理 LIF 」 |
クラスタまたはSVM管理LIFのIPアドレス完全修飾ドメイン名(FQDN)を指定できます。IPv6フラグを使用してTridentがインストールされている場合は、IPv6アドレスを使用するように設定できます。IPv6アドレスは、[28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]などの角かっこで定義する必要があります。 |
"10.0.0.1 ","[2001:1234:abcd::fe]" |
「重複排除 |
プロトコル LIF の IP アドレス。ONTAP NAS ドライバー:NetApp では dataLIF を指定することを推奨しています。指定しない場合、 Trident は SVM から dataLIF を取得します。NFS マウント操作に使用する完全修飾ドメイン名( FQDN )を指定できます。これにより、複数の dataLIF 間で負荷を分散するラウンドロビン DNS を作成できます。初期設定後に変更できます。ONTAP SAN ドライバー: iSCSI には指定しないでください。Trident は ONTAP Selective LUN Map を使用して、マルチパス セッションの確立に必要な iSCI LIF を検出します。dataLIF が明示的に定義されている場合は警告が生成されます。TridentをIPv6フラグを使用してインストールした場合、IPv6アドレスを使用するように設定できます。IPv6アドレスは、[28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]のように角括弧で定義する必要があります。 |
|
「 autoExportPolicy 」を参照してください |
エクスポートポリシーの自動作成と更新を有効にします[ブーリアン]。オプションと `autoExportCIDRs`オプションを使用する `autoExportPolicy`と、Tridentでエクスポートポリシーを自動的に管理できます。 |
「偽」 |
「 autoExportCI` 」 |
が有効な場合にKubernetesのノードIPをフィルタリングするCIDRのリスト |
"["0.0.0.0/0"、"::/0"]" |
「ラベル」 |
ボリュームに適用する任意の JSON 形式のラベルのセット |
"" |
「 clientCertificate 」をクリックします |
クライアント証明書の Base64 エンコード値。証明書ベースの認証に使用されます |
"" |
「 clientPrivateKey 」 |
クライアント秘密鍵の Base64 エンコード値。証明書ベースの認証に使用されます |
"" |
「 trustedCacertifate 」 |
信頼された CA 証明書の Base64 エンコード値。任意。証明書ベースの認証に使用されます。 |
"" |
「ユーザ名」 |
クラスタまたはSVMに接続するためのユーザ名。クレデンシャルベースの認証に使用されます。たとえば、vsadminのように指定します。 |
|
「 password 」と入力します |
クラスタまたはSVMに接続するためのパスワード。クレデンシャルベースの認証に使用されます。 |
|
'VM' |
使用する Storage Virtual Machine |
SVM管理LIFが指定されている場合に生成されます。 |
'toragePrefix' |
SVM で新しいボリュームをプロビジョニングする際に使用するプレフィックスを指定します。作成後に変更することはできません。このパラメータを更新するには、新しいバックエンドを作成する必要があります。 |
|
「 AggreglimitateUsage 」と入力します |
* Amazon FSx for NetApp ONTAPには指定しないでください。*指定されたと |
使用しないでください。 |
「 limitVolumeSize 」と入力します |
要求されたボリュームサイズがこの値を超えている場合、プロビジョニングが失敗します。また、qtreeおよびLUNに対して管理するボリュームの最大サイズを制限し、オプションを使用すると、FlexVol volumeあたりのqtreeの最大数をカスタマイズできます。 |
"" (デフォルトでは適用されません) |
'lunsPerFlexvol |
FlexVol volumeあたりの最大LUN数は[50、200]の範囲で指定する必要があります。SANのみ。 |
“100” |
「バグトレースフラグ」 |
トラブルシューティング時に使用するデバッグフラグ。例:{"api":false、"method":true} |
null |
「 nfsvMountOptions 」のように入力します |
NFSマウントオプションをカンマで区切ったリスト。Kubernetes永続ボリュームのマウントオプションは通常ストレージクラスで指定されますが、ストレージクラスにマウントオプションが指定されていない場合、Tridentはストレージバックエンドの構成ファイルに指定されているマウントオプションを使用してフォールバックします。ストレージクラスまたは構成ファイルでマウントオプションが指定されていない場合、Tridentは関連付けられた永続ボリュームにマウントオプションを設定しません。 |
"" |
|
NFSボリュームまたはSMBボリュームの作成を設定オプションはです |
|
qtreesPerFlexvol` |
FlexVol volumeあたりの最大qtree数は[50、300]の範囲で指定する必要があります。 |
|
|
次のいずれかを指定できます。Microsoft管理コンソールまたはONTAP CLIを使用して作成されたSMB共有の名前、またはTridentにSMB共有の作成を許可する名前。このパラメータは、Amazon FSx for ONTAPバックエンドに必要です。 |
|
「 useREST` 」 |
ONTAP REST API を使用するためのブーリアンパラメータ。に設定する |
「偽」 |
|
AWS FSx for ONTAPの構成ファイルでは、次の項目を指定できます。 |
|
|
AWS Secrets Managerに保存するFSx SVMのクレデンシャルを指定します。- |
ボリュームのプロビジョニング用のバックエンド構成オプション
これらのオプションを使用して、のデフォルトプロビジョニングを制御できます defaults 設定のセクション。例については、以下の設定例を参照してください。
| パラメータ | 説明 | デフォルト |
|---|---|---|
「平和の配分」 |
space-allocation for LUN のコマンドを指定します |
「真」 |
「平和のための準備」を参照してください |
スペースリザベーションモード:「none」(シン)または「volume」(シック) |
「 NONE 」 |
「ナプショットポリシー」 |
使用する Snapshot ポリシー |
「 NONE 」 |
「 QOSPolicy 」 |
作成したボリュームに割り当てる QoS ポリシーグループ。ストレージプールまたはバックエンドごとに、QOSPolicyまたはadaptiveQosPolicyのいずれかを選択します。TridentでQoSポリシーグループを使用するには、ONTAP 9 .8以降が必要です。共有されていないQoSポリシーグループを使用し、ポリシーグループが各コンスティチュエントに個別に適用されるようにします。QoSポリシーグループを共有すると、すべてのワークロードの合計スループットの上限が適用されます。 |
"" |
「 adaptiveQosPolicy 」を参照してください |
アダプティブ QoS ポリシーグループ:作成したボリュームに割り当てます。ストレージプールまたはバックエンドごとに、QOSPolicyまたはadaptiveQosPolicyのいずれかを選択します。経済性に影響する ONTAP - NAS ではサポートされません。 |
"" |
「スナップショット予約」 |
Snapshot「0」用にリザーブされているボリュームの割合 |
がの |
'plitOnClone |
作成時にクローンを親からスプリットします |
「偽」 |
「暗号化」 |
新しいボリュームでNetApp Volume Encryption(NVE)を有効にします。デフォルトはです。 `false`このオプションを使用するには、クラスタで NVE のライセンスが設定され、有効になっている必要があります。バックエンドでNAEが有効になっている場合、TridentでプロビジョニングされたすべてのボリュームでNAEが有効になります。詳細については、を参照してください"TridentとNVEおよびNAEとの連携"。 |
「偽」 |
|
LUKS暗号化を有効にします。を参照してください "Linux Unified Key Setup(LUKS;統合キーセットアップ)を使用"。SANのみ。 |
"" |
階層ポリシー |
使用する階層化ポリシー |
|
「 unixPermissions 」 |
新しいボリュームのモード。* SMBボリュームは空にしておきます。* |
"" |
'ecurityStyle' |
新しいボリュームのセキュリティ形式。NFSのサポート |
NFSのデフォルトはです |