Kubernetes オブジェクトと Trident オブジェクト
リソースオブジェクトの読み取りと書き込みを行うことで、 REST API を使用して Kubernetes や Trident を操作できます。Kubernetes と Trident 、 Trident とストレージ、 Kubernetes とストレージの関係を決定するリソースオブジェクトがいくつかあります。これらのオブジェクトの中には Kubernetes で管理されるものと Trident で管理されるものがあります。
オブジェクトは相互にどのように相互作用しますか。
おそらく、オブジェクト、その目的、操作方法を理解する最も簡単な方法は、 Kubernetes ユーザからのストレージ要求を 1 回だけ処理することです。
-
ユーザがを作成します
PersistentVolumeClaim
新しいを要求していますPersistentVolume
特定のサイズのものをKubernetesから取得しますStorageClass
以前に管理者によって設定されていたもの。 -
Kubernetes
StorageClass
Tridentをプロビジョニングツールとして特定し、要求されたクラスのボリュームのプロビジョニング方法をTridentに指示するパラメータを設定します。 -
Tridentはその外観を独自にしています
StorageClass
一致するものと同じ名前を使用しますBackends
およびStoragePools
を使用して、クラスのボリュームをプロビジョニングできます。 -
Tridentは、一致するバックエンドにストレージをプロビジョニングし、2つのオブジェクトを作成します。A
PersistentVolume
Kubernetesで、ボリュームとTrident内のボリュームを検出、マウント、処理し、間の関係を保持する方法を指示しますPersistentVolume
実際のストレージをサポートします。 -
Kubernetesがをバインド
PersistentVolumeClaim
を新しいに変更しますPersistentVolume
。を含むポッドPersistentVolumeClaim
このPersistentVolumeを、実行されている任意のホストにマウントします。 -
ユーザがを作成します
VolumeSnapshot
を使用した既存のPVCのVolumeSnapshotClass
Tridentを指しています。 -
Trident が PVC に関連付けられているボリュームを特定し、バックエンドにボリュームの Snapshot を作成します。また、を作成します
VolumeSnapshotContent
これにより、Snapshotの識別方法をKubernetesに指示します。 -
ユーザはを作成できます
PersistentVolumeClaim
を使用しますVolumeSnapshot
をソースとして使用します。 -
Tridentが必要なSnapshotを特定し、の作成と同じ手順を実行します
PersistentVolume
およびVolume
。
Kubernetes オブジェクトの詳細については、を参照することを強く推奨します "永続ボリューム" Kubernetes のドキュメントのセクション。 |
Kubernetes PersistentVolumeClaim
オブジェクト
Kubernetesを PersistentVolumeClaim
オブジェクトは、Kubernetesクラスタユーザが作成するストレージの要求です。
Trident では、標準仕様に加えて、バックエンド構成で設定したデフォルト設定を上書きする場合に、ボリューム固有の次のアノテーションを指定できます。
アノテーション | ボリュームオプション | サポートされているドライバ |
---|---|---|
trident.netapp.io/fileSystem |
ファイルシステム |
ONTAP-SAN 、 solidfire-san-SAN 、 eseries-iscsi 、 ONTAP-SAN-エコノミー の 2 つのシステムがあります |
trident.netapp.io/cloneFromPVC |
cloneSourceVolume の実行中です |
ontap - NAS 、 ontap - san 、 solidfire-san-files 、 gcvs 、 ONTAP - SAN - 経済性 |
trident.netapp.io/splitOnClone |
splitOnClone |
ONTAP - NAS 、 ONTAP - SAN |
trident.netapp.io/protocol |
プロトコル |
任意 |
trident.netapp.io/exportPolicy |
エクスポートポリシー |
ONTAPNAS 、 ONTAPNAS エコノミー、 ONTAP-NAS-flexgroup |
trident.netapp.io/snapshotPolicy |
Snapshot ポリシー |
ONTAPNAS 、 ONTAPNAS エコノミー、 ONTAP-NAS-flexgroup 、 ONTAP-SAN |
trident.netapp.io/snapshotReserve |
Snapshot リザーブ |
ONTAP-NAS 、 ONTAP-NAS-flexgroup 、 ONTAP-SAN 、 GCP-cvs |
trident.netapp.io/snapshotDirectory |
snapshotDirectory の略 |
ONTAPNAS 、 ONTAPNAS エコノミー、 ONTAP-NAS-flexgroup |
trident.netapp.io/unixPermissions |
unixPermissions |
ONTAPNAS 、 ONTAPNAS エコノミー、 ONTAP-NAS-flexgroup |
trident.netapp.io/blockSize |
ブロックサイズ |
solidfire - SAN |
作成されたPVにがある場合 Delete
ポリシーを再利用すると、PVが解放されたとき(つまり、ユーザがPVCを削除したとき)に、TridentはPVと元のボリュームの両方を削除します。削除操作が失敗した場合、 Trident は PV をマークします。そのような状態で操作が成功するか、 PV が手動で削除されるまで、定期的に再試行します。PVがを使用している場合 Retain
Tridentはポリシーを無視し、管理者がKubernetesとバックエンドからクリーンアップすることを前提としているため、ボリュームを削除する前にバックアップや検査を実行できます。PV を削除しても、原因 Trident で元のボリュームが削除されないことに注意してください。REST APIを使用して削除する必要があります (tridentctl
)。
Trident では CSI 仕様を使用したボリュームスナップショットの作成がサポートされています。ボリュームスナップショットを作成し、それをデータソースとして使用して既存の PVC のクローンを作成できます。これにより、 PVS のポイントインタイムコピーを Kubernetes にスナップショットの形で公開できます。作成した Snapshot を使用して新しい PVS を作成できます。を参照してください On-Demand Volume Snapshots
これがどのように機能するかを確認します。
Tridentが提供するのも cloneFromPVC
および splitOnClone
クローンを作成するためのアノテーションCSI 実装( Kubernetes 1.13 以前)を使用しなくても、または Kubernetes リリースがベータ版のボリュームスナップショット( Kubernetes 1.16 以前)をサポートしていない場合は、これらのアノテーションを使用して PVC のクローンを作成できます。Trident 19.10 は、 PVC からのクローニングの CSI ワークフローをサポートしていることに注意してください。
を使用できます cloneFromPVC および splitOnClone CSI Tridentの注釈と従来のCSI以外のフロントエンド。
|
次に例を示します。ユーザがすでにというPVCを持っている場合 mysql`を使用すると、ユーザはという新しいPVCを作成できます `mysqlclone
などのアノテーションを使用する trident.netapp.io/cloneFromPVC: mysql
。このアノテーションセットを使用すると、 Trident はボリュームをゼロからプロビジョニングするのではなく、 MySQL PVC に対応するボリュームのクローンを作成します。
次の点を考慮してください。
-
アイドルボリュームのクローンを作成することを推奨します。
-
PVC とそのクローンは、同じ Kubernetes ネームスペースに存在し、同じストレージクラスを持つ必要があります。
-
を使用
ontap-nas
およびontap-san
ドライバが必要な場合は、PVC注釈を設定することをお勧めしますtrident.netapp.io/splitOnClone
と組み合わせて使用しますtrident.netapp.io/cloneFromPVC
。を使用trident.netapp.io/splitOnClone
をに設定しますtrue`Tridentでは、クローニングされたボリュームを親ボリュームからスプリットするため、ストレージ効率を維持しないまま、クローニングされたボリュームのライフサイクルを完全に分離します。設定されていません `trident.netapp.io/splitOnClone
またはに設定しますfalse
親ボリュームとクローンボリューム間の依存関係を作成するのではなく、バックエンドのスペース消費が削減されます。そのため、クローンを先に削除しないかぎり親ボリュームを削除できません。クローンをスプリットするシナリオでは、空のデータベースボリュームをクローニングする方法が効果的です。このシナリオでは、ボリュームとそのクローンで使用するデータベースボリュームのサイズが大きく異なっており、 ONTAP ではストレージ効率化のメリットはありません。
。 sample-input
Directoryには、Tridentで使用するPVC定義の例が含まれています。Trident ボリュームに関連するパラメータと設定の完全な概要については、 Trident ボリュームオブジェクトを参照してください。
Kubernetes PersistentVolume
オブジェクト
Kubernetesを PersistentVolume
オブジェクトは、Kubernetesクラスタで使用可能になるストレージを表します。ポッドに依存しないライフサイクルがあります。
Tridentが実現 PersistentVolume オブジェクトを作成し、プロビジョニングするボリュームに基づいてKubernetesクラスタに自動的に登録します。自分で管理することは想定されていません。
|
Tridentベースを参照するPVCを作成する場合 `StorageClass`Tridentは、対応するストレージクラスを使用して新しいボリュームをプロビジョニングし、そのボリュームに新しいPVを登録します。プロビジョニングされたボリュームと対応する PV の構成では、 Trident は次のルールに従います。
-
Trident は、 Kubernetes に PV 名を生成し、ストレージのプロビジョニングに使用する内部名を生成します。どちらの場合も、名前がスコープ内で一意であることが保証されます。
-
ボリュームのサイズは、 PVC で要求されたサイズにできるだけ近いサイズに一致しますが、プラットフォームによっては、最も近い割り当て可能な数量に切り上げられる場合があります。
Kubernetes StorageClass
オブジェクト
Kubernetes StorageClass
オブジェクトは、の名前で指定します PersistentVolumeClaims
一連のプロパティを指定してストレージをプロビジョニングします。ストレージクラス自体が、使用するプロビジョニングツールを特定し、プロビジョニングツールが理解できる一連のプロパティを定義します。
管理者が作成および管理する必要がある 2 つの基本オブジェクトのうちの 1 つです。もう 1 つは Trident バックエンドオブジェクトです。
Kubernetesを StorageClass
Tridentを使用するオブジェクトは次のようになります。
apiVersion: storage.k8s.io/v1beta1 kind: StorageClass metadata: name: <Name> provisioner: csi.trident.netapp.io mountOptions: <Mount Options> parameters: <Trident Parameters> allowVolumeExpansion: true volumeBindingMode: Immediate
これらのパラメータは Trident 固有で、クラスのボリュームのプロビジョニング方法を Trident に指示します。
ストレージクラスのパラメータは次のとおりです。
属性 | を入力します | 必須 | 説明 |
---|---|---|---|
属性( Attributes ) |
[string] 文字列をマップします |
いいえ |
後述の「属性」セクションを参照してください |
ストレージプール |
[string] StringList をマップします |
いいえ |
内のストレージプールのリストへのバックエンド名のマッピング |
AdditionalStoragePools |
[string] StringList をマップします |
いいえ |
内のストレージプールのリストへのバックエンド名のマッピング |
excludeStoragePools |
[string] StringList をマップします |
いいえ |
内のストレージプールのリストへのバックエンド名のマッピング |
ストレージ属性とその有効な値は、ストレージプールの選択属性と Kubernetes 属性に分類できます。
ストレージプールの選択の属性
これらのパラメータは、特定のタイプのボリュームのプロビジョニングに使用する Trident で管理されているストレージプールを決定します。
属性 | を入力します | 値 | 提供 | リクエスト | でサポートされます |
---|---|---|---|---|---|
メディア ^1 |
文字列 |
HDD 、ハイブリッド、 SSD |
プールにはこのタイプのメディアが含まれています。ハイブリッドは両方を意味します |
メディアタイプが指定されました |
ONTAPNAS 、 ONTAPNAS エコノミー、 ONTAP-NAS-flexgroup 、 ONTAPSAN 、 solidfire-san-SAN 、 solidfire-san-SAN のいずれかに対応しています |
プロビジョニングタイプ |
文字列 |
シン、シック |
プールはこのプロビジョニング方法をサポートします |
プロビジョニング方法が指定されました |
シック: All ONTAP & eseries-iscsi ; thin : all ONTAP & solidfire-san-SAN |
backendType |
文字列 |
ONTAPNAS 、 ONTAPNAS エコノミー、 ONTAP-NAS-flexgroup 、 ONTAPSAN 、 solidfire-san-SAN 、 solidfire-san-SAN 、 E シリーズ - iSCSI 、 GCP-cvs 、 azure-NetApp-files 、 ONTAP-SAN-Eエコノミー |
プールはこのタイプのバックエンドに属しています |
バックエンドが指定されて |
すべてのドライバ |
Snapshot |
ブール値 |
true false |
プールは、 Snapshot を含むボリュームをサポートします |
Snapshot が有効なボリューム |
ONTAP-NAS, ONTAP-SAN, solidfire-san-, gcvs |
クローン |
ブール値 |
true false |
プールはボリュームのクローニングをサポートします |
クローンが有効なボリューム |
ONTAP-NAS, ONTAP-SAN, solidfire-san-, gcvs |
暗号化 |
ブール値 |
true false |
プールでは暗号化されたボリュームをサポート |
暗号化が有効なボリューム |
ONTAP-NAS 、 ONTAP-NAS-エコノミー 、 ONTAP-NAS-FlexArray グループ、 ONTAP-SAN |
IOPS |
整数 |
正の整数 |
プールは、この範囲内で IOPS を保証する機能を備えています |
ボリュームで IOPS が保証されました |
solidfire - SAN |
^1 ^ : ONTAP Select システムではサポートされていません
ほとんどの場合、要求された値はプロビジョニングに直接影響します。たとえば、シックプロビジョニングを要求した場合、シックプロビジョニングボリュームが使用されます。ただし、 Element ストレージプールでは、提供されている IOPS の最小値と最大値を使用して、要求された値ではなく QoS 値を設定します。この場合、要求された値はストレージプールの選択のみに使用されます。
理想的には、を使用できます attributes
特定のクラスのニーズを満たすために必要なストレージの品質をモデル化することだけを目的としています。Tridentは、の_all_に一致するストレージプールを自動的に検出して選択します attributes
を指定します。
自分が使用できない場合は attributes
クラスに適したプールを自動的に選択するには、を使用します storagePools
および additionalStoragePools
プールをさらに細かく指定するためのパラメータ、または特定のプールセットを選択するためのパラメータ。
を使用できます storagePools
指定したパラメータに一致するプールをさらに制限します attributes
。つまり、Tridentはによって識別されたプールの交点を使用します attributes
および storagePools
プロビジョニングのパラメータ。どちらか一方のパラメータを単独で使用することも、両方を同時に使用することも
を使用できます additionalStoragePools
Tridentがプロビジョニングに使用する一連のプールを、で選択されているプールに関係なく拡張するためのパラメータ attributes
および storagePools
パラメータ
を使用できます excludeStoragePools
Tridentがプロビジョニングに使用する一連のプールをフィルタリングするためのパラメータ。このパラメータを使用すると、一致するプールがすべて削除されます。
を参照してください storagePools
および additionalStoragePools
パラメータを指定すると、各エントリの形式がになります <backend>:<storagePoolList>
、ここで <storagePoolList>
は、指定したバックエンドのストレージプールをカンマで区切ったリストです。たとえば、の値などです additionalStoragePools
次のように表示されます ontapnas_192.168.1.100:aggr1,aggr2;solidfire_192.168.1.101:bronze
。これらのリストでは、バックエンド値とリスト値の両方に正規表現値を使用できます。を使用できます tridentctl get backend
バックエンドとそのプールのリストを取得します。
Kubernetes の属性
これらの属性は、動的プロビジョニングの際に Trident が選択するストレージプール / バックエンドには影響しません。代わりに、 Kubernetes Persistent Volume でサポートされるパラメータを提供するだけです。ワーカーノードはファイルシステムの作成操作を担当し、 xfsprogs などのファイルシステムユーティリティを必要とする場合があります。
属性 | を入力します | 値 | 説明 | 関連するドライバ | Kubernetes のバージョン |
---|---|---|---|---|---|
FSstype (英語) |
文字列 |
ext4 、 ext3 、 xfs など |
ブロックボリュームのファイルシステムのタイプ |
solidfire-san-group 、 ontap/nas 、 ontap -nas-エコノミー 、 ontap -nas-flexgroup 、 ontap -san 、 ONTAP - SAN 経済、 eseries-iscsi |
すべて |
allowVolumeExpansion の略 |
ブール値 |
true false |
PVC サイズの拡張のサポートをイネーブルまたはディセーブルにします |
ONTAPNAS 、 ONTAPNAS エコノミー、 ONTAP-NAS-flexgroup 、 ONTAPSAN 、 ONTAP-SAN-エコノミー 、 solidfire-san-, gcvs, azure-netapp-files |
1.11 以上 |
volumeBindingMode のようになりました |
文字列 |
即時、 WaitForFirstConsumer |
ボリュームバインドと動的プロビジョニングを実行するタイミングを選択します |
すべて |
1.19~1.24 |
|
Kubernetes VolumeSnapshotClass
オブジェクト
Kubernetes VolumeSnapshotClass
オブジェクトはに似ています StorageClasses
。この Snapshot コピーは、複数のストレージクラスの定義に役立ちます。また、ボリューム Snapshot によって参照され、 Snapshot を必要な Snapshot クラスに関連付けます。各ボリューム Snapshot は、単一のボリューム Snapshot クラスに関連付けられます。
A VolumeSnapshotClass
Snapshotを作成するには、管理者によって定義されている必要があります。ボリューム Snapshot クラスは、次の定義で作成されます。
apiVersion: snapshot.storage.k8s.io/v1beta1 kind: VolumeSnapshotClass metadata: name: csi-snapclass driver: csi.trident.netapp.io deletionPolicy: Delete
。 driver
のボリュームSnapshotを要求するKubernetesに指定します csi-snapclass
クラスはTridentによって処理されます。。 deletionPolicy
Snapshotを削除する必要がある場合に実行する処理を指定します。いつ deletionPolicy
がに設定されます Delete`を指定すると、Snapshotが削除されたときに、ボリュームSnapshotオブジェクトおよびストレージクラスタ上の基盤となるSnapshotが削除されます。または、に設定します `Retain
はそのことを示します VolumeSnapshotContent
物理スナップショットが保持されます。
Kubernetes VolumeSnapshot
オブジェクト
Kubernetesを VolumeSnapshot
objectは、ボリュームのSnapshotを作成する要求です。PVC がボリュームに対するユーザからの要求を表すのと同様に、ボリュームスナップショットは、ユーザが既存の PVC のスナップショットを作成する要求です。
ボリュームSnapshot要求が開始されると、TridentはバックエンドでのボリュームのSnapshotの作成を自動的に管理し、一意のを作成してSnapshotを公開します
VolumeSnapshotContent
オブジェクト。既存の PVC からスナップショットを作成し、新しい PVC を作成するときにスナップショットを DataSource として使用できます。
VolumeSnapshot のライフサイクルはソース PVC とは無関係です。ソース PVC が削除されても、スナップショットは維持されます。スナップショットが関連付けられている PVC を削除すると、 Trident はその PVC のバッキングボリュームを Deleting 状態でマークしますが、完全には削除しません。関連付けられている Snapshot がすべて削除されると、ボリュームは削除されます。 |
Kubernetes VolumeSnapshotContent
オブジェクト
Kubernetesを VolumeSnapshotContent
オブジェクトは、すでにプロビジョニングされているボリュームから作成されたSnapshotを表します。これはに似ています PersistentVolume
とは、ストレージクラスタにプロビジョニングされたSnapshotを表します。に似ています PersistentVolumeClaim
および PersistentVolume
オブジェクト。スナップショットが作成されると、が表示されます VolumeSnapshotContent
オブジェクトは、への1対1のマッピングを保持します VolumeSnapshot
オブジェクト。オブジェクトはSnapshotの作成を要求しました。
Tridentが実現 VolumeSnapshotContent オブジェクトを作成し、プロビジョニングするボリュームに基づいてKubernetesクラスタに自動的に登録します。自分で管理することは想定されていません。
|
。 VolumeSnapshotContent
Objectには、など、Snapshotを一意に識別する詳細が含まれます snapshotHandle
。これ snapshotHandle
は、PVの名前との名前を一意に組み合わせたものです VolumeSnapshotContent
オブジェクト。
Trident では、スナップショット要求を受信すると、バックエンドにスナップショットが作成されます。スナップショットが作成されると、Tridentによってが設定されます VolumeSnapshotContent
オブジェクトを作成することで、SnapshotをKubernetes APIに公開します。
Kubernetes CustomResourceDefinition
オブジェクト
Kubernetes カスタムリソースは、管理者が定義した Kubernetes API 内のエンドポイントであり、類似するオブジェクトのグループ化に使用されます。Kubernetes では、オブジェクトのコレクションを格納するためのカスタムリソースの作成をサポートしています。を実行すると、これらのリソース定義を取得できます kubectl get crds
。
カスタムリソース定義( CRD )と関連するオブジェクトメタデータは、 Kubernetes によってメタデータストアに格納されます。これにより、 Trident の独立したストアが不要になります。
19.07リリース以降、Tridentはいくつかのを使用します CustomResourceDefinition
Tridentバックエンド、Tridentストレージクラス、Tridentボリュームなど、TridentオブジェクトのIDを保持するオブジェクト。これらのオブジェクトは Trident によって管理されます。また、 CSI のボリュームスナップショットフレームワークには、ボリュームスナップショットの定義に必要ないくつかの SSD が導入されています。
CRD は Kubernetes の構成要素です。上記で定義したリソースのオブジェクトは Trident によって作成されます。簡単な例として、を使用してバックエンドを作成する場合を示します tridentctl`に対応します `tridentbackends
CRDオブジェクトは、Kubernetesによって消費されるために作成されます。
Trident の CRD については、次の点に注意してください。
-
Trident をインストールすると、一連の CRD が作成され、他のリソースタイプと同様に使用できるようになります。
-
以前のバージョンのTrident(使用していたもの)からアップグレードする場合
etcd
ステートを維持するために)、Tridentインストーラがからデータを移行しますetcd
キーバリューデータストアと対応するCRDオブジェクトの作成。 -
Tridentをアンインストールするには、を使用します
tridentctl uninstall
コマンドであるTridentポッドが削除されましたが、作成されたSSDはクリーンアップされません。を参照してください "Trident をアンインストールします" Trident を完全に削除して再構成する方法を理解する。
Trident StorageClass
オブジェクト
TridentではKubernetesに対応するストレージクラスが作成されます StorageClass
を指定するオブジェクト csi.trident.netapp.io
/netapp.io/trident
プロビジョニング担当者のフィールドに入力します。ストレージクラス名がKubernetesの名前と一致していること StorageClass
表すオブジェクト。
Kubernetesでは、これらのオブジェクトはKubernetesのときに自動的に作成されます StorageClass Tridentをプロビジョニングツールとして使用していることが登録されます。
|
ストレージクラスは、ボリュームの一連の要件で構成されます。Trident は、これらの要件と各ストレージプール内の属性を照合し、一致する場合は、そのストレージプールが、そのストレージクラスを使用するボリュームのプロビジョニングの有効なターゲットになります。
REST API を使用して、ストレージクラスを直接定義するストレージクラス設定を作成できます。ただし、Kubernetes環境では、新しいKubernetesを登録するときにKubernetes環境が作成されることを想定しています StorageClass
オブジェクト。
Trident バックエンドオブジェクト
バックエンドとは、 Trident がボリュームをプロビジョニングする際にストレージプロバイダを表します。 1 つの Trident インスタンスであらゆる数のバックエンドを管理できます。
これは、自分で作成および管理する 2 つのオブジェクトタイプのうちの 1 つです。もう1つはKubernetesです StorageClass オブジェクト。
|
これらのオブジェクトの作成方法の詳細については、を参照してください "バックエンドの設定"。
Trident StoragePool
オブジェクト
ストレージプールは、各バックエンドでのプロビジョニングに使用できる個別の場所を表します。ONTAP の場合、これらは SVM 内のアグリゲートに対応します。NetApp HCI / SolidFire では、管理者が指定した QoS 帯域に対応します。Cloud Volumes Service の場合、これらはクラウドプロバイダのリージョンに対応します。各ストレージプールには、パフォーマンス特性とデータ保護特性を定義するストレージ属性があります。
他のオブジェクトとは異なり、ストレージプールの候補は常に自動的に検出されて管理されます。
Trident Volume
オブジェクト
ボリュームは、 NFS 共有や iSCSI LUN などのバックエンドエンドエンドエンドポイントで構成される、プロビジョニングの基本単位です。Kubernetesでは、これらはに直接対応します PersistentVolumes
。ボリュームを作成するときは、そのボリュームにストレージクラスが含まれていることを確認します。このクラスによって、ボリュームをプロビジョニングできる場所とサイズが決まります。
Kubernetes では、これらのオブジェクトが自動的に管理されます。Trident がプロビジョニングしたものを表示できます。 |
関連付けられた Snapshot がある PV を削除すると、対応する Trident ボリュームが * Deleting * 状態に更新されます。Trident ボリュームを削除するには、ボリュームの Snapshot を削除する必要があります。 |
ボリューム構成は、プロビジョニングされたボリュームに必要なプロパティを定義します。
属性 | を入力します | 必須 | 説明 |
---|---|---|---|
バージョン |
文字列 |
いいえ |
Trident API のバージョン(「 1 」) |
名前 |
文字列 |
はい。 |
作成するボリュームの名前 |
ストレージクラス |
文字列 |
はい。 |
ボリュームのプロビジョニング時に使用するストレージクラス |
サイズ |
文字列 |
はい。 |
プロビジョニングするボリュームのサイズ(バイト単位) |
プロトコル |
文字列 |
いいえ |
使用するプロトコルの種類:「 file 」または「 block 」 |
インターン名 |
文字列 |
いいえ |
Trident が生成した、ストレージシステム上のオブジェクトの名前 |
cloneSourceVolume の実行中です |
文字列 |
いいえ |
ONTAP ( NAS 、 SAN ) & SolidFire - * :クローン元のボリュームの名前 |
splitOnClone |
文字列 |
いいえ |
ONTAP ( NAS 、 SAN ):クローンを親からスプリットします |
Snapshot ポリシー |
文字列 |
いいえ |
ONTAP - * :使用する Snapshot ポリシー |
Snapshot リザーブ |
文字列 |
いいえ |
ONTAP - * : Snapshot 用にリザーブされているボリュームの割合 |
エクスポートポリシー |
文字列 |
いいえ |
ONTAP-NAS* :使用するエクスポートポリシー |
snapshotDirectory の略 |
ブール値 |
いいえ |
ONTAP-NAS* : Snapshot ディレクトリが表示されているかどうか |
unixPermissions |
文字列 |
いいえ |
ONTAP-NAS* :最初の UNIX 権限 |
ブロックサイズ |
文字列 |
いいえ |
SolidFire - * :ブロック / セクターサイズ |
ファイルシステム |
文字列 |
いいえ |
ファイルシステムのタイプ |
Tridentが生成 internalName
ボリュームを作成する場合。この構成は 2 つのステップで構成されます。最初に、ストレージプレフィックス(デフォルトのプレフィックス)を先頭に追加します trident
またはバックエンド構成内のプレフィックス)をボリューム名に変更して、形式の名前を指定します <prefix>-<volume-name>
。その後、名前の完全消去が行われ、バックエンドで許可されていない文字が置き換えられます。ONTAP バックエンドの場合、ハイフンをアンダースコアに置き換えます(内部名はになります) <prefix>_<volume-name>
)。Element バックエンドの場合、アンダースコアはハイフンに置き換えられます。
ボリューム構成を使用してREST APIを使用してボリュームを直接プロビジョニングできますが、Kubernetes環境ではほとんどのユーザが標準のKubernetesを使用することを想定しています PersistentVolumeClaim
メソッドTrident は、プロビジョニングプロセスの一環として、このボリュームオブジェクトを自動的に作成します。
Trident Snapshot
オブジェクト
Snapshot はボリュームのポイントインタイムコピーで、新しいボリュームのプロビジョニングやリストア状態に使用できます。Kubernetesでは、これらはに直接対応します VolumeSnapshotContent
オブジェクト。各 Snapshot には、 Snapshot のデータのソースであるボリュームが関連付けられます。
各 Snapshot
オブジェクトには、次のプロパティが含まれます。
属性 | を入力します | 必須 | 説明 |
---|---|---|---|
バージョン |
文字列 |
はい。 |
Trident API のバージョン(「 1 」) |
名前 |
文字列 |
はい。 |
Trident Snapshot オブジェクトの名前 |
インターン名 |
文字列 |
はい。 |
ストレージシステム上の Trident Snapshot オブジェクトの名前 |
ボリューム名 |
文字列 |
はい。 |
Snapshot を作成する永続的ボリュームの名前 |
ボリュームの内部名 |
文字列 |
はい。 |
ストレージシステムに関連付けられている Trident ボリュームオブジェクトの名前 |
Kubernetes では、これらのオブジェクトが自動的に管理されます。Trident がプロビジョニングしたものを表示できます。 |
Kubernetesを導入したとき VolumeSnapshot
オブジェクト要求が作成されると、TridentはバッキングストレージシステムにSnapshotオブジェクトを作成することで機能します。。 internalName
このSnapshotオブジェクトのプレフィックスを組み合わせると、が生成されます snapshot-
を使用 UID
の VolumeSnapshot
オブジェクト(例: snapshot-e8d8a0ca-9826-11e9-9807-525400f3f660
)。 volumeName
および volumeInternalName
バッキングボリュームの詳細を取得して格納されます。
Astra Trident ResourceQuota
オブジェクト
Tridentのデーモンは、を消費します system-node-critical
優先度クラス:Kubernetesで最も高い優先度クラスです。Astra Tridentは、ノードの正常なシャットダウン中にボリュームを識別してクリーンアップし、Tridentのデミスタポッドがリソースの負荷が高いクラスタでより低い優先度でワークロードをプリエンプトできるようにします。
そのために、Astra Tridentはを採用しています ResourceQuota
Tridentのデミスタに対する「システムノードクリティカル」の優先クラスを満たすことを保証するオブジェクト。導入とデマ作用の開始前に、Astra Tridentがを探します ResourceQuota
オブジェクトを検出し、検出されない場合は適用します。
デフォルトのリソースクォータおよび優先クラスをより詳細に制御する必要がある場合は、を生成できます custom.yaml
またはを設定します ResourceQuota
Helmチャートを使用するオブジェクト。
次に示すのは'ResourceQuota'オブジェクトがTridentのデマ作用を優先する例です
apiVersion: <version> kind: ResourceQuota metadata: name: trident-csi labels: app: node.csi.trident.netapp.io spec: scopeSelector: matchExpressions: - operator : In scopeName: PriorityClass values: ["system-node-critical"]
リソース・クォータの詳細については'を参照してください "Kubernetes:リソースクォータ"。
クリーンアップ ResourceQuota
インストールが失敗した場合
まれに、のあとにインストールが失敗する場合があります ResourceQuota
オブジェクトが作成されました。最初に実行してください "アンインストール中です" を再インストールします。
うまくいかない場合は、を手動で削除します ResourceQuota
オブジェクト。
取り外します ResourceQuota
独自のリソース割り当てを制御する場合は、Astra Tridentを削除できます ResourceQuota
次のコマンドを使用したオブジェクトの削除:
kubectl delete quota trident-csi -n trident