Tridentオペレータのインストールをカスタマイズ
Tridentオペレータは、仕様の属性を使用してAstra Tridentのインストールをカスタマイズでき `TridentOrchestrator`ます。引数で許可される範囲を超えてインストールをカスタマイズする場合 `TridentOrchestrator`は、を使用してカスタムYAMLマニフェストを生成し、必要に応じて変更することを検討して `tridentctl`ください。
コントローラポッドとノードポッドについて
Astra Tridentは、単一のコントローラポッドと、クラスタ内の各ワーカーノード上のノードポッドとして実行されます。Astra Tridentボリュームをマウントするすべてのホストでノードポッドが実行されている必要があります。
Kubernetes"ノードセレクタ"を使用して、"寛容さと汚れ"ポッドを特定のノードまたは優先ノードで実行するように制限します。「ControllerPlugin」とを使用して、 `NodePlugin`制約とオーバーライドを指定できます。
-
コントローラプラグインは、Snapshotやサイズ変更などのボリュームのプロビジョニングと管理を処理します。
-
ノードプラグインによって、ノードへのストレージの接続が処理されます。
設定オプション
spec.namespace`は `TridentOrchestrator 、Astra Tridentがインストールされているネームスペースを示します。このパラメータ * は、 Astra Trident のインストール後に更新できません * 。これを実行しようとすると、 `TridentOrchestrator`ステータスがに変わり `Failed`ます。Astra Tridentは、ネームスペース間での移行を意図していません。
|
このテーブルは、属性の詳細を示し `TridentOrchestrator`ます。
パラメータ | 説明 | デフォルト |
---|---|---|
|
Astra Trident をインストールするネームスペース |
|
|
Astra Trident のデバッグを有効にします |
|
|
`ontap-san`そして `ontap-san-economy`のみ。KubernetesのNon-Graceful Node Shutdown(NGN)と連携して、ノードに障害が発生した場合に、マウントされたボリュームを含むワークロードを新しいノードに安全に移行する機能をクラスタ管理者に提供します。 |
|
|
をに設定する `true`と、Windowsワーカーノードへのインストールが有効になります。 |
|
|
AKSクラスタで管理IDまたはクラウドIDを使用する場合はに設定します |
|
|
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/astratrident-role」)に設定されます。 |
|
|
IPv6 経由の Astra Trident をインストール |
正しくない |
|
Kubernetes 処理のタイムアウト |
|
|
AutoSupport バンドルをネットアップに自動的に送信しない |
|
|
AutoSupport テレメトリのコンテナイメージ |
|
|
AutoSupport テレメトリを送信するプロキシのアドレス / ポート |
|
|
Astra Trident のアンインストールに使用するフラグ |
|
|
Astra Trident のログ形式が使用 [text 、 JSON] |
|
|
インストールする Astra Trident イメージ |
|
|
内部レジストリへのパス(形式) |
|
|
ホスト上の kubelet ディレクトリへのパス |
|
|
Astra Trident を完全に削除するために削除するリソースのリスト |
|
|
内部レジストリからイメージをプルするシークレット |
|
|
Tridentオペレータのイメージプルポリシーを設定します。有効な値は次のとおりです。常に画像をプルします。 |
|
|
ポッド用の追加のノードセレクタ。の形式はと同じ `pod.spec.nodeSelector`です。 |
デフォルトはありません。オプションです |
|
ポッドに対するKubernetesの許容範囲を上書きします。はと同じ形式 `pod.spec.Tolerations`です。 |
デフォルトはありません。オプションです |
|
ポッド用の追加のノードセレクタ。の形式はと同じ `pod.spec.nodeSelector`です。 |
デフォルトはありません。オプションです |
|
ポッドに対するKubernetesの許容範囲を上書きします。はと同じ形式 `pod.spec.Tolerations`です。 |
デフォルトはありません。オプションです |
ポッドパラメータのフォーマットの詳細については、を参照してください"ポッドをノードに割り当てます"。 |
フォースデタッチの詳細
強制切り離しは、および `ontap-san-economy`でのみ使用でき `ontap-san`ます。強制接続解除を有効にする前に、Kubernetesクラスタで非グレースフルノードシャットダウン(NGN)を有効にする必要があります。詳細については、を参照してください "Kubernetes:正常なノードシャットダウンではありません"。
Astra TridentはKubernetes NGNに依存しているため、許容できないすべてのワークロードのスケジュールが再設定されるまで、正常でないノードからテイントを削除しないで `out-of-service`ください。汚染を無謀に適用または削除すると、バックエンドのデータ保護が危険にさらされる可能性があります。 |
Kubernetesクラスタ管理者がtaintをノードに適用し、 enableForceDetach`をに設定する `true`と `node.kubernetes.io/out-of-service=nodeshutdown:NoExecute
、Astra Tridentによってノードのステータスが確認され、次の処理が実行されます。
-
そのノードにマウントされたボリュームのバックエンドI/Oアクセスを停止します。
-
Astra Tridentノードオブジェクトを(新しいドキュメントに対しては安全ではない)とマークします
dirty
。Tridentコントローラは、Tridentノードポッドによって(とマークされた後で)ノードが再修飾されるまで、新しいパブリッシュボリューム要求を拒否し dirty`ます。マウントされたPVCでスケジュールされているワークロード(クラスタノードが正常で準備が完了したあとも含む)は、Astra Tridentがノードを検証できる(新しいドキュメントに対応)まで受け付けられません `clean
。
ノードの健常性が回復してtaintが削除されると、Astra Tridentは次の処理を実行します。
-
ノード上の古い公開パスを特定してクリーンアップします。
-
ノードが状態で(サービス停止状態が削除され、ノードが状態である
Ready
)、古い公開パスがすべてクリーンである場合、cleanable`Astra 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
ノードセレクタ
この例では、Astra Tridentとノードセレクタをインストールします。
apiVersion: trident.netapp.io/v1 kind: TridentOrchestrator metadata: name: trident spec: debug: true namespace: trident controllerPluginNodeSelector: nodetype: master nodePluginNodeSelector: storage: netapp
Windowsワーカーノード
この例では、WindowsワーカーノードにAstra 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を有効にするためにAstra Tridentをインストールします。
apiVersion: trident.netapp.io/v1 kind: TridentOrchestrator metadata: name: trident spec: debug: true namespace: trident cloudProvider: "Azure"
AKSクラスタ上のクラウドID
この例では、AKSクラスタにクラウドIDで使用するAstra 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で使用するAstra 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/astratrident-role'"