Tridentオペレータのインストールをカスタマイズ
Trident演算子を使用すると、仕様の属性を使用してTridentのインストールをカスタマイズでき `TridentOrchestrator`ます。引数で許可される範囲を超えてインストールをカスタマイズする場合 `TridentOrchestrator`は、を使用してカスタムYAMLマニフェストを生成し、必要に応じて変更することを検討して `tridentctl`ください。
コントローラポッドとノードポッドについて
Tridentは、単一のコントローラポッドと、クラスタ内の各ワーカーノード上のノードポッドとして動作します。Tridentボリュームをマウントする可能性があるホストでノードポッドが実行されている必要があります。
Kubernetes "ノードセレクタ" および "寛容さと汚れ" は、特定のノードまたは優先ノードで実行されるようにポッドを制限するために使用されます。「ControllerPlugin」およびを使用します `NodePlugin`を使用すると、拘束とオーバーライドを指定できます。
-
コントローラプラグインは、Snapshotやサイズ変更などのボリュームのプロビジョニングと管理を処理します。
-
ノードプラグインによって、ノードへのストレージの接続が処理されます。
設定オプション
`spec.namespace`は、Tridentがインストールされているネームスペースを示すためににに指定されてい `TridentOrchestrator`ます。このパラメータ*は、Tridentのインストール後は更新できません*。これを実行しようとすると、 `TridentOrchestrator`ステータスがに変わり `Failed`ます。Tridentをネームスペース間で移行することは想定されていません。 |
このテーブルの詳細 TridentOrchestrator
属性。
パラメータ | 説明 | デフォルト |
---|---|---|
|
Tridentをインストールするネームスペース |
|
「バグ」 |
Tridentのデバッグを有効にする |
「偽」 |
|
|
「偽」 |
|
をに設定します |
「偽」 |
|
をに設定します |
|
|
AKSクラスタでクラウドIDを使用する場合は、ワークロードID(「azure.workload.identity/client-id:xxxxxxxxxx-xxxx-xxxxxxx」)に設定します。EKSクラスタでクラウドIDを使用する場合は、AWS IAMロール(「eks.amazonaws.com/role-arn: arn:aws:iam::123456:role / Trident -role」)に設定されます。 |
|
|
IPv6経由のTridentのインストール |
いいえ |
|
Kubernetes 処理のタイムアウト |
|
|
AutoSupportバンドルをNetAppに送信しない |
「偽」 |
「 autosupportImage 」を参照してください |
AutoSupport テレメトリのコンテナイメージ |
|
「 autosupportProxy 」と入力します |
AutoSupportを送信するためのプロキシのアドレス/ポート |
|
uninstall |
Tridentのアンインストールに使用するフラグ |
「偽」 |
|
使用するTridentログ形式[text、json] |
|
「 tridentImage 」のように入力します |
インストールするTridentイメージ |
|
「 imageRegistry 」と入力します |
形式の内部レジストリへのパス |
|
「 kubeletDir 」を参照してください |
ホスト上の kubelet ディレクトリへのパス |
|
|
Tridentを完全に削除するために削除するリソースのリスト |
|
「 imagePullSecrets 」 |
内部レジストリからイメージをプルするシークレット |
|
|
Tridentオペレータのイメージプルポリシーを設定します。有効な値は次のとおりです。 |
|
controller'PluginNodeSelector |
ポッド用の追加のノードセレクタ。 の形式はと同じです |
デフォルトはありません。オプションです |
controllerPluginTolerations |
ポッドに対するKubernetesの許容範囲を上書きします。はと同じ形式です |
デフォルトはありません。オプションです |
「 nodePluginNodeSelector 」 |
ポッド用の追加のノードセレクタ。の形式はと同じです |
デフォルトはありません。オプションです |
「 nodePluginTolerations` 」 |
ポッドに対するKubernetesの許容範囲を上書きします。はと同じ形式です |
デフォルトはありません。オプションです |
|
指定したデータストレージプロトコルを使用してボリュームを管理できるように、TridentでKubernetesクラスタのノードを準備できるようにします。現在 `iscsi`サポートされている値は、のみです。 |
ポッドパラメータのフォーマットの詳細については、を参照してください。 "ポッドをノードに割り当てます"。 |
フォースデタッチの詳細
[強制切り離し(Force detach)]は、 `ontap-san-economy`および `onatp-nas-economy`でのみ使用でき `ontap-san`ます。強制接続解除を有効にする前に、Kubernetesクラスタで非グレースフルノードシャットダウン(NGN)を有効にする必要があります。詳細については、を参照してください "Kubernetes:正常なノードシャットダウンではありません"。
ドライバを使用する場合 `ontap-nas-economy`は、管理対象のエクスポートポリシーを使用してtaintが適用されたKubernetesノードからのアクセスをTridentが制限できるように、バックエンド構成のパラメータをに `true`設定する必要 `autoExportPolicy`があります。 |
TridentはKubernetes NGNに依存しているため、許容できないすべてのワークロードのスケジュールを再設定するまで、正常でないノードからテイントを削除しないで `out-of-service`ください。汚染を無謀に適用または削除すると、バックエンドのデータ保護が危険にさらされる可能性があります。 |
Kubernetesクラスタ管理者がtaintをノードに適用し、 enableForceDetach`をに設定する `true`と `node.kubernetes.io/out-of-service=nodeshutdown:NoExecute
、Tridentはノードのステータスを確認し、次の処理を行います。
-
そのノードにマウントされたボリュームのバックエンドI/Oアクセスを停止します。
-
Tridentノードオブジェクトを(新しいパブリケーションに対しては安全ではない)としてマークします
dirty
。Tridentコントローラは、Tridentノードポッドによって(とマークされた後で)ノードが再修飾されるまで、新しいパブリッシュボリューム要求を拒否し dirty`ます。マウントされたPVCを使用してスケジュールされたワークロード(クラスタノードが正常で準備が完了したあとも)は、Tridentがそのノードを検証できるようになるまで受け入れられません `clean
(新しいパブリケーションに対して安全)。
ノードの健常性が回復してtaintが削除されると、Tridentは次の処理を実行します。
-
ノード上の古い公開パスを特定してクリーンアップします。
-
ノードが状態(アウトオブサービス状態が削除され、ノードが
Ready`状態)で、古い公開パスがすべてクリーンである場合、 `cleanable`Tridentはノードをとして再登録し、新しい公開ボリュームをそのノードに許可します `clean
。
構成例
次の属性を使用できます: 設定オプション テイギスルバアイ TridentOrchestrator
をクリックして、インストールをカスタマイズします。
基本的なカスタム設定
これは、基本的なカスタムインストールの例です。
cat deploy/crds/tridentorchestrator_cr_imagepullsecrets.yaml apiVersion: trident.netapp.io/v1 kind: TridentOrchestrator metadata: name: trident spec: debug: true namespace: trident imagePullSecrets: - thisisasecret
ノードセレクタ
この例では、ノードセレクタを使用してTridentをインストールします。
apiVersion: trident.netapp.io/v1 kind: TridentOrchestrator metadata: name: trident spec: debug: true namespace: trident controllerPluginNodeSelector: nodetype: master nodePluginNodeSelector: storage: netapp
Windowsワーカーノード
この例では、WindowsワーカーノードにTridentをインストールします。
cat deploy/crds/tridentorchestrator_cr.yaml apiVersion: trident.netapp.io/v1 kind: TridentOrchestrator metadata: name: trident spec: debug: true namespace: trident windows: true
AKSクラスタ上の管理対象ID
この例では、AKSクラスタで管理対象IDを有効にするためにTridentをインストールします。
apiVersion: trident.netapp.io/v1 kind: TridentOrchestrator metadata: name: trident spec: debug: true namespace: trident cloudProvider: "Azure"
AKSクラスタ上のクラウドID
この例では、AKSクラスタ上のクラウドIDで使用するTridentをインストールします。
apiVersion: trident.netapp.io/v1 kind: TridentOrchestrator metadata: name: trident spec: debug: true namespace: trident cloudProvider: "Azure" cloudIdentity: 'azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx'
EKSクラスタ上のクラウドID
この例では、AKSクラスタ上のクラウドIDで使用するTridentをインストールします。
apiVersion: trident.netapp.io/v1 kind: TridentOrchestrator metadata: name: trident spec: debug: true namespace: trident cloudProvider: "AWS" cloudIdentity: "'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role'"
GKEのクラウドID
この例では、GKEクラスタにクラウドIDで使用するTridentをインストールします。
apiVersion: trident.netapp.io/v1 kind: TridentBackendConfig metadata: name: backend-tbc-gcp-gcnv spec: version: 1 storageDriverName: google-cloud-netapp-volumes projectNumber: '012345678901' network: gcnv-network location: us-west2 serviceLevel: Premium storagePool: pool-premium1