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

ストレージクラスを設定する

共同作成者 netapp-aruldeepa kcantrel
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つのパラメータ:

パラメータ 必須 を入力します 説明

fsxFilesystemID

はい。

文字列

FSx for NetApp ONTAP ファイルシステム ID

'torageDriverName'

はい。

文字列

Trident ストレージ ドライバ(例: ontap-nas`または `ontap-san

credentialsName

はい。

文字列

ONTAP クレデンシャルを含む FSx for ONTAP の Kubernetes Secret の名前

オプションのパラメータを指定します

オプションのバックエンドパラメータはStorageClassを介して渡すことができます。StorageClass `parameters`セクションで、すべてのオプション値を文字列として定義します。バックエンドパラメータの完全なリストについては、以下を参照してください:FSx for NetApp ONTAP バックエンド構成

StorageClass設定ファイルの例。

次の例は、自動バックエンド構成をトリガーするStorageClassを示しています。

YAML
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
JSON
{
  "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アノテーションに記録します。

アノテーション 説明

trident.netapp.io/configuratorStatus

構成結果((Success`または `Failure

trident.netapp.io/configuratorMessage

詳細なステータスまたはエラーメッセージ

trident.netapp.io/configuratorName

内部コンフィギュレータリソースの名前

trident.netapp.io/managed

StorageClass が Trident によって管理されていることを示します

trident.netapp.io/additionalStoragePools

このバックエンド用に作成されたストレージプール

ステータスを確認するには、次のコマンドを実行します:

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のクレデンシャルを保存する方法を示しています:

YAML
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
JSON
{
  "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ボリュームです。

ドライバーの詳細については、を参照してください。 "NASドライバ" および "SANドライバ"

バックエンドを作成します

設定ファイルを作成した後、以下のコマンドを実行して、Tridentバックエンド構成(TBC)を作成および検証します:

  • YAMLファイルからTridentバックエンド構成(TBC)を作成し、次のコマンドを実行します。

    kubectl create -f backendconfig.yaml -n trident
    tridentbackendconfig.trident.netapp.io/backend-tbc-ontap-nas created
  • Tridentバックエンド構成(TBC)が正常に作成されたことを確認します。

    Kubectl get tbc -n trident
    NAME                         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で作成できます。

手順
  1. これはKubernetesオブジェクトなので、 kubectl をクリックしてKubernetesで作成します。

    kubectl create -f storage-class-ontapnas.yaml
  2. 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'

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

ontap-nasontap-nas-economyontap-nas-flexgroupontap-sanontap-san-economy

backendName`

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

ドライバ名+"_"+ dataLIF

「管理 LIF 」

クラスタまたはSVM管理LIFのIPアドレス完全修飾ドメイン名(FQDN)を指定できます。IPv6フラグを使用してTridentがインストールされている場合は、IPv6アドレスを使用するように設定できます。IPv6アドレスは、[28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]などの角かっこで定義する必要があります。 aws`フィールドでを指定する場合は `fsxFilesystemID、を指定する必要はありませ managementLIF`ん。TridentはAWSからSVM情報を取得するためです。 `managementLIF`そのため、SVMの下のユーザ(vsadminなど)のクレデンシャルを指定し、そのユーザにロールが割り当てられている必要があり `vsadmin ます。

"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のリスト autoExportPolicy。オプションと `autoExportCIDRs`オプションを使用する `autoExportPolicy`と、Tridentでエクスポートポリシーを自動的に管理できます。

"["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 で新しいボリュームをプロビジョニングする際に使用するプレフィックスを指定します。作成後に変更することはできません。このパラメータを更新するには、新しいバックエンドを作成する必要があります。

trident

「 AggreglimitateUsage 」と入力します

* Amazon FSx for NetApp ONTAPには指定しないでください。*指定されたと vsadmin`には `fsxadmin、アグリゲートの使用量を取得してTridentを使用して制限するために必要な権限が含まれていません。

使用しないでください。

「 limitVolumeSize 」と入力します

要求されたボリュームサイズがこの値を超えている場合、プロビジョニングが失敗します。また、qtreeおよびLUNに対して管理するボリュームの最大サイズを制限し、オプションを使用すると、FlexVol volumeあたりのqtreeの最大数をカスタマイズできます。 qtreesPerFlexvol

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

'lunsPerFlexvol

FlexVol volumeあたりの最大LUN数は[50、200]の範囲で指定する必要があります。SANのみ。

“100”

「バグトレースフラグ」

トラブルシューティング時に使用するデバッグフラグ。例:{"api":false、"method":true}

使用しないでください debugTraceFlags トラブルシューティングを実行していて、詳細なログダンプが必要な場合を除きます。

null

「 nfsvMountOptions 」のように入力します

NFSマウントオプションをカンマで区切ったリスト。Kubernetes永続ボリュームのマウントオプションは通常ストレージクラスで指定されますが、ストレージクラスにマウントオプションが指定されていない場合、Tridentはストレージバックエンドの構成ファイルに指定されているマウントオプションを使用してフォールバックします。ストレージクラスまたは構成ファイルでマウントオプションが指定されていない場合、Tridentは関連付けられた永続ボリュームにマウントオプションを設定しません。

""

nasType

NFSボリュームまたはSMBボリュームの作成を設定オプションはです nfssmb、またはnull。*をに設定する必要があります smb SMBボリューム。*をnullに設定すると、デフォルトでNFSボリュームが使用されます。

nfs

qtreesPerFlexvol`

FlexVol volumeあたりの最大qtree数は[50、300]の範囲で指定する必要があります。

"200"

smbShare

次のいずれかを指定できます。Microsoft管理コンソールまたはONTAP CLIを使用して作成されたSMB共有の名前、またはTridentにSMB共有の作成を許可する名前。このパラメータは、Amazon FSx for ONTAPバックエンドに必要です。

smb-share

「 useREST` 」

ONTAP REST API を使用するためのブーリアンパラメータ。に設定する true`と、TridentはONTAP REST APIを使用してバックエンドと通信します。この機能にはONTAP 9.11.1以降が必要です。また、使用するONTAPログインロールには、アプリケーションへのアクセス権が必要です `ontap 。これは、事前に定義された役割と役割によって実現され vsadmin cluster-admin ます。

「偽」

aws

AWS FSx for ONTAPの構成ファイルでは、次の項目を指定できます。
- fsxFilesystemID:AWS FSxファイルシステムのIDを指定します。
- apiRegion:AWS APIリージョン名。
- apikey:AWS APIキー。
- secretKey:AWSシークレットキー。





""
""
""

credentials

AWS Secrets Managerに保存するFSx SVMのクレデンシャルを指定します。- name:シークレットのAmazonリソース名(ARN)。SVMのクレデンシャルが含まれています。- type:に設定します awsarn。詳細については、を参照してください "AWS Secrets Managerシークレットの作成"

ボリュームのプロビジョニング用のバックエンド構成オプション

これらのオプションを使用して、のデフォルトプロビジョニングを制御できます 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」用にリザーブされているボリュームの割合

がの none`場合 `snapshotPolicy else、""

'plitOnClone

作成時にクローンを親からスプリットします

「偽」

「暗号化」

新しいボリュームでNetApp Volume Encryption(NVE)を有効にします。デフォルトはです。 `false`このオプションを使用するには、クラスタで NVE のライセンスが設定され、有効になっている必要があります。バックエンドでNAEが有効になっている場合、TridentでプロビジョニングされたすべてのボリュームでNAEが有効になります。詳細については、を参照してください"TridentとNVEおよびNAEとの連携"

「偽」

luksEncryption

LUKS暗号化を有効にします。を参照してください "Linux Unified Key Setup(LUKS;統合キーセットアップ)を使用"。SANのみ。

""

階層ポリシー

使用する階層化ポリシー none

「 unixPermissions 」

新しいボリュームのモード。* SMBボリュームは空にしておきます。*

""

'ecurityStyle'

新しいボリュームのセキュリティ形式。NFSのサポート mixed および unix セキュリティ形式SMBはをサポートします mixed および ntfs セキュリティ形式

NFSのデフォルトはです unix。SMBのデフォルトはです ntfs