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

Tridentオペレータのインストールをカスタマイズ

共同作成者

Trident演算子を使用すると、仕様の属性を使用してTridentのインストールをカスタマイズでき `TridentOrchestrator`ます。引数で許可される範囲を超えてインストールをカスタマイズする場合 `TridentOrchestrator`は、を使用してカスタムYAMLマニフェストを生成し、必要に応じて変更することを検討して `tridentctl`ください。

コントローラポッドとノードポッドについて

Tridentは、単一のコントローラポッドと、クラスタ内の各ワーカーノード上のノードポッドとして動作します。Tridentボリュームをマウントする可能性があるホストでノードポッドが実行されている必要があります。

Kubernetes "ノードセレクタ" および "寛容さと汚れ" は、特定のノードまたは優先ノードで実行されるようにポッドを制限するために使用されます。「ControllerPlugin」およびを使用します `NodePlugin`を使用すると、拘束とオーバーライドを指定できます。

  • コントローラプラグインは、Snapshotやサイズ変更などのボリュームのプロビジョニングと管理を処理します。

  • ノードプラグインによって、ノードへのストレージの接続が処理されます。

設定オプション

警告 `spec.namespace`は、Tridentがインストールされているネームスペースを示すためににに指定されてい `TridentOrchestrator`ます。このパラメータ*は、Tridentのインストール後は更新できません*。これを実行しようとすると、 `TridentOrchestrator`ステータスがに変わり `Failed`ます。Tridentをネームスペース間で移行することは想定されていません。

このテーブルの詳細 TridentOrchestrator 属性。

パラメータ 説明 デフォルト

namespace

Tridentをインストールするネームスペース

"default"

「バグ」

Tridentのデバッグを有効にする

「偽」

enableForceDetach

ontap-san、 `ontap-san-economy`および `ontap-nas-economy`のみ。KubernetesのNon-Graceful Node Shutdown(NGN)と連携して、ノードに障害が発生した場合に、マウントされたボリュームを含むワークロードを新しいノードに安全に移行する機能をクラスタ管理者に提供します。

「偽」

windows

をに設定します true Windowsワーカーノードへのインストールを有効にします。

「偽」

cloudProvider

をに設定します "Azure" AKSクラスタで管理対象IDまたはクラウドIDを使用する場合。EKSクラスタでクラウドIDを使用する場合は、「aws」に設定します。

""

cloudIdentity

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

IPv6経由のTridentのインストール

いいえ

k8sTimeout

Kubernetes 処理のタイムアウト

30sec

silenceAutosupport

AutoSupportバンドルをNetAppに送信しない
自動

「偽」

「 autosupportImage 」を参照してください

AutoSupport テレメトリのコンテナイメージ

"netapp/trident-autosupport:24.10"

「 autosupportProxy 」と入力します

AutoSupportを送信するためのプロキシのアドレス/ポート
テレメータ

"http://proxy.example.com:8888"

uninstall

Tridentのアンインストールに使用するフラグ

「偽」

logFormat

使用するTridentログ形式[text、json]

"text"

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

インストールするTridentイメージ

"netapp/trident:24.10"

「 imageRegistry 」と入力します

形式の内部レジストリへのパス
<registry FQDN>[:port][/subpath]

"k8s.gcr.io"(Kubernetes 1.19以降)または "quay.io/k8scsi"

「 kubeletDir 」を参照してください

ホスト上の kubelet ディレクトリへのパス

"/var/lib/kubelet"

wipeout

Tridentを完全に削除するために削除するリソースのリスト

「 imagePullSecrets 」

内部レジストリからイメージをプルするシークレット

imagePullPolicy

Tridentオペレータのイメージプルポリシーを設定します。有効な値は次のとおりです。
Always 常にイメージをプルする。
IfNotPresent ノード上にイメージが存在しない場合にのみ取得します。
Never 画像を絶対に引き出さないでください。

IfNotPresent

controller'PluginNodeSelector

ポッド用の追加のノードセレクタ。 の形式はと同じです pod.spec.nodeSelector

デフォルトはありません。オプションです

controllerPluginTolerations

ポッドに対するKubernetesの許容範囲を上書きします。はと同じ形式です pod.spec.Tolerations

デフォルトはありません。オプションです

「 nodePluginNodeSelector 」

ポッド用の追加のノードセレクタ。の形式はと同じです pod.spec.nodeSelector

デフォルトはありません。オプションです

「 nodePluginTolerations` 」

ポッドに対するKubernetesの許容範囲を上書きします。はと同じ形式です pod.spec.Tolerations

デフォルトはありません。オプションです

nodePrep

指定したデータストレージプロトコルを使用してボリュームを管理できるように、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はノードのステータスを確認し、次の処理を行います。

  1. そのノードにマウントされたボリュームのバックエンドI/Oアクセスを停止します。

  2. Tridentノードオブジェクトを(新しいパブリケーションに対しては安全ではない)としてマークします dirty

    メモ Tridentコントローラは、Tridentノードポッドによって(とマークされた後で)ノードが再修飾されるまで、新しいパブリッシュボリューム要求を拒否し dirty`ます。マウントされたPVCを使用してスケジュールされたワークロード(クラスタノードが正常で準備が完了したあとも)は、Tridentがそのノードを検証できるようになるまで受け入れられません `clean(新しいパブリケーションに対して安全)。

ノードの健常性が回復してtaintが削除されると、Tridentは次の処理を実行します。

  1. ノード上の古い公開パスを特定してクリーンアップします。

  2. ノードが状態(アウトオブサービス状態が削除され、ノードが 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