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を使用する場合はに設定します |
|
||||
|
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」)に設定されます。GKEクラスタでクラウドIDを使用する場合は、クラウドID(「IAM.GKE.IO/gcp-service-account: xxxx@mygcpproject.iam.gserviceaccount.com」)に設定します。 |
|
||||
|
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`サポートされている値は、のみです。
|
|||||
|
Kubernetes API サーバーと通信するときにコントローラーが使用する 1 秒あたりのクエリ数 (QPS) の制限。バースト値は QPS 値に基づいて自動的に設定されます。 |
|
||||
|
スループットを向上させるために、同時Tridentコントローラー操作を有効にします。
|
いいえ |
||||
|
Tridentコントローラーとノード ポッドの Kubernetes リソース制限と要求を設定します。Kubernetes でのリソース割り当てを管理するために、コンテナとサイドカーごとに CPU とメモリを設定できます。 リソース要求と制限の設定の詳細については、以下を参照してください。"ポッドとコンテナのリソース管理" 。
|
|
||||
|
Prometheus メトリック エンドポイントに対して HTTPS を有効にします。 |
いいえ |
||||
「ホストネットワーク」 |
Tridentコントローラーのホスト ネットワークを有効にします。これは、マルチホーム ネットワークでフロントエンド トラフィックとバックエンド トラフィックを分離する場合に便利です。 |
いいえ |
|
|
ポッドパラメータのフォーマットの詳細については、を参照してください。 "ポッドをノードに割り当てます"。 |
構成例
属性は設定オプション定義するとき `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
TridentコントローラーとTrident Linux ノード ポッドの Kubernetes リソース要求と制限の構成
この例では、 TridentコントローラーとTrident Linux ノード ポッドの Kubernetes リソース要求と制限を構成します。
|
|
免責事項: この例で示されている要求値と制限値は、デモンストレーションのみを目的としています。環境とワークロードの要件に基づいてこれらの値を調整します。 |
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
imagePullSecrets:
- thisisasecret
resources:
controller:
trident-main:
requests:
cpu: 10m
memory: 80Mi
limits:
cpu: 200m
memory: 256Mi
# sidecars
csi-provisioner:
requests:
cpu: 2m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
csi-attacher:
requests:
cpu: 2m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
csi-resizer:
requests:
cpu: 3m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
csi-snapshotter:
requests:
cpu: 2m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
trident-autosupport:
requests:
cpu: 1m
memory: 30Mi
limits:
cpu: 50m
memory: 128Mi
node:
linux:
trident-main:
requests:
cpu: 10m
memory: 60Mi
limits:
cpu: 200m
memory: 256Mi
# sidecars
node-driver-registrar:
requests:
cpu: 1m
memory: 10Mi
limits:
cpu: 50m
memory: 32Mi
TridentコントローラーとTrident Windows および Linux ノード ポッドの Kubernetes リソース要求と制限の構成
この例では、 TridentコントローラーとTrident Windows および Linux ノード ポッドの Kubernetes リソース要求と制限を構成します。
|
|
免責事項: この例で示されている要求値と制限値は、デモンストレーションのみを目的としています。環境とワークロードの要件に基づいてこれらの値を調整します。 |
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
imagePullSecrets:
- thisisasecret
windows: true
resources:
controller:
trident-main:
requests:
cpu: 10m
memory: 80Mi
limits:
cpu: 200m
memory: 256Mi
# sidecars
csi-provisioner:
requests:
cpu: 2m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
csi-attacher:
requests:
cpu: 2m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
csi-resizer:
requests:
cpu: 3m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
csi-snapshotter:
requests:
cpu: 2m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
trident-autosupport:
requests:
cpu: 1m
memory: 30Mi
limits:
cpu: 50m
memory: 128Mi
node:
linux:
trident-main:
requests:
cpu: 10m
memory: 60Mi
limits:
cpu: 200m
memory: 256Mi
# sidecars
node-driver-registrar:
requests:
cpu: 1m
memory: 10Mi
limits:
cpu: 50m
memory: 32Mi
windows:
trident-main:
requests:
cpu: 6m
memory: 40Mi
limits:
cpu: 200m
memory: 128Mi
# sidecars
node-driver-registrar:
requests:
cpu: 6m
memory: 40Mi
limits:
cpu: 100m
memory: 128Mi
liveness-probe:
requests:
cpu: 2m
memory: 40Mi
limits:
cpu: 50m
memory: 64Mi