Tridentオペレータのインストールをカスタマイズする
Tridentオペレータを使用すると、以下の属性を使用してTridentのインストールをカスタマイズできます。 `TridentOrchestrator`スペックインストールをさらにカスタマイズしたい場合は、 `TridentOrchestrator`引数が許せば、使用を検討してください `tridentctl`必要に応じて変更できるカスタム YAML マニフェストを生成します。
コントローラーポッドとノードポッドについて
Trident は単一のコントローラー ポッドとして実行され、クラスター内の各ワーカー ノード上のノード ポッドも実行されます。ノード ポッドは、 Tridentボリュームをマウントする可能性があるすべてのホストで実行されている必要があります。
Kubernetes"ノードセレクター"そして"寛容と汚点"ポッドを特定のノードまたは優先ノードで実行するように制限するために使用されます。 ControllerPlugin と NodePlugin、制約とオーバーライドを指定できます。
-
コントローラー プラグインは、スナップショットやサイズ変更などのボリュームのプロビジョニングと管理を処理します。
-
ノード プラグインは、ストレージをノードに接続する処理を行います。
構成オプション
|
|
spec.namespace`指定されている `TridentOrchestrator`Tridentがインストールされている名前空間を示します。このパラメータは、* Tridentのインストール後は更新できません*。そうしようとすると、 `TridentOrchestrator`変更するステータス `Failed。 Trident は名前空間間で移行されることを意図していません。
|
この表の詳細 `TridentOrchestrator`属性。
| パラメータ | 説明 | デフォルト | ||
|---|---|---|---|---|
|
Tridentをインストールする名前空間 |
|
||
|
Tridentのデバッグを有効にする |
|
||
|
|
|
||
|
設定する `true`Windows ワーカー ノードへのインストールを有効にします。 |
|
||
|
設定 `"Azure"`AKS クラスターでマネージド ID またはクラウド ID を使用する場合。設定 `"AWS"`EKS クラスターでクラウド ID を使用する場合。設定 `"GCP"`GKE クラスターでクラウド ID を使用する場合。 |
|
||
|
AKS クラスターでクラウド ID を使用する場合は、ワークロード ID ("azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx") に設定します。 EKS クラスターでクラウド ID を使用する場合は、AWS IAM ロール (「'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role'」) に設定します。 GKE クラスタでクラウド ID を使用する場合は、クラウド ID (「'iam.gke.io/gcp-service-account: xxxx@mygcpproject.iam.gserviceaccount.com'」) に設定します。 |
|
||
|
IPv6経由でTridentをインストールする |
false |
||
|
Kubernetes 操作のタイムアウト。
|
|
||
|
自動サポートバンドルをNetAppに自動的に送信しない |
|
||
|
Autosupport Telemetryのコンテナイメージ |
|
||
|
Autosupportテレメトリを送信するためのプロキシのアドレス/ポート |
|
||
|
Trident をアンインストールするために使用するフラグ |
|
||
|
使用するTridentログ形式 [text,json] |
|
||
|
インストールするTridentイメージ |
|
||
|
内部レジストリへのパス(形式: |
|
||
|
ホスト上のkubeletディレクトリへのパス |
|
||
|
Tridentを完全に削除するために削除するリソースのリスト |
|||
|
内部レジストリからイメージをプルするための秘密 |
|||
|
Tridentオペレータのイメージ プル ポリシーを設定します。有効な値は次のとおりです。 |
|
||
|
ポッドの追加ノードセレクター。同じ形式に従う |
デフォルトなし、オプション |
||
|
ポッドの Kubernetes 許容値をオーバーライドします。同じ形式に従う |
デフォルトなし、オプション |
||
|
ポッドの追加ノードセレクター。同じ形式に従う |
デフォルトなし、オプション |
||
|
ポッドの Kubernetes 許容値をオーバーライドします。同じ形式に従う |
デフォルトなし、オプション |
||
|
指定されたデータ ストレージ プロトコルを使用してボリュームを管理するために、 Tridentが Kubernetes クラスターのノードを準備できるようにします。現在、 `iscsi`サポートされている唯一の値です。
|
|||
|
Kubernetes API サーバーと通信するときにコントローラーが使用する 1 秒あたりのクエリ数 (QPS) の制限。バースト値は QPS 値に基づいて自動的に設定されます。 |
|
||
|
スループットを向上させるために、同時Tridentコントローラー操作を有効にします。
|
false |
|
|
ポッドパラメータのフォーマットの詳細については、以下を参照してください。"ポッドをノードに割り当てる" 。 |
強制デタッチの詳細
強制デタッチは、 ontap-san 、 ontap-san-economy 、 ontap-nas 、 そして `ontap-nas-economy`のみ。強制デタッチを有効にする前に、Kubernetes クラスターで非正常なノード シャットダウン (NGNS) を有効にする必要があります。Kubernetes 1.28 以降では、NGNS はデフォルトで有効になっています。詳細については、"Kubernetes: 非正常なノードシャットダウン" 。
|
|
使用する際は `ontap-nas`または `ontap-nas-economy`ドライバーの場合は、 `autoExportPolicy`バックエンド構成のパラメータ `true`これにより、 Trident は管理対象エクスポート ポリシーを使用して、汚染が適用された Kubernetes ノードからのアクセスを制限できるようになります。 |
|
|
TridentはKubernetes NGNSに依存しているため、削除しないでください。 `out-of-service`許容できないすべてのワークロードが再スケジュールされるまで、不健全なノードから汚染を除去します。汚染を無謀に適用または削除すると、バックエンドのデータ保護が危険にさらされる可能性があります。 |
Kubernetesクラスタ管理者が node.kubernetes.io/out-of-service=nodeshutdown:NoExecute`ノードへの汚染と `enableForceDetach`設定されている `true、 Trident はノードのステータスを判定し、次の処理を実行します。
-
そのノードにマウントされたボリュームのバックエンド I/O アクセスを停止します。
-
Tridentノードオブジェクトを次のようにマークします
dirty(新規公開には適していません)。Tridentコントローラは、ノードが再認定されるまで(ノードが再認定されるまで)新しいパブリッシュボリューム要求を拒否します。 dirty) をTridentノード ポッドによって実行します。マウントされたPVCでスケジュールされたワークロードは(クラスタノードが正常で準備完了した後でも)、 Tridentがノードを検証するまで受け入れられません。clean(新規出版には安全です)。
ノードの健全性が回復し、汚染が除去されると、 Trident は次の動作を実行します。
-
ノード上の古くなった公開パスを識別してクリーンアップします。
-
ノードが `cleanable`状態(サービス停止の汚染が除去され、ノードは `Ready`状態)であり、すべての古い公開されたパスがクリーンである場合、 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ワーカーノード
この例は、 `cat deploy/crds/tridentorchestrator_cr.yaml`コマンドは、Windows ワーカー ノードにTrident をインストールします。
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
windows: true
AKS クラスター上のマネージド ID
この例では、 Tridentをインストールして、AKS クラスターでマネージド ID を有効にします。
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