証明書マネージャ

証明書マネージャ・クラスタ・アドオンを有効にすると、次のキー/値のペアを引数として渡すことができます。

ほとんどのクラスタ・アドオンに共通の構成引数
キー(APIおよびCLI) キーの表示名(コンソール) 説明 必須/オプション デフォルト値 値の例
affinity affinity

アフィニティ・スケジューリング・ルールのグループ。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

未使用者:
  • NVIDIA GPUオペレータ
可能な等価:
  • ノード機能の検出、master.affinityの使用
  • NVIDIA Network Operator、operator.affinityを使用
  • CSIドライバSMB、contoller.affinityを使用
  • AMD GPUオペレータ、controllerManager.affinityを使用
オプション null null
nodeSelectors ノード・セレクター

ノード・セレクタおよびノード・ラベルを使用して、アドオン・ポッドが実行されるワーカー・ノードを制御できます。

ポッドをノードで実行するには、ポッドのノード・セレクタのキー/値がノードのラベルと同じである必要があります。

nodeSelectorsを、ポッドのノード・セレクタとワーカー・ノードのラベルの両方に一致するキー/値ペアに設定します。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

未使用者:
  • NVIDIA GPUオペレータ
  • CSIドライバ SMB
可能な等価:
  • ノード機能の検出、worker.nodeSelectorの使用
  • NVIDIA Network Operator、operator.nodeSelectorsを使用
  • AMD GPU演算子。selectorまたはcontrollerManager.nodeSelectorを使用します
オプション null {"foo":"bar", "foo2": "bar2"}

ポッドは、foo=barまたはfoo2=bar2ラベルを持つノードでのみ実行されます。

numOfReplicas numOfReplicas アドオン配備の複製の数。
未使用者:
  • AMD GPUプラグイン
  • NVIDIA GPUオペレータ
  • NVIDIAネットワーク事業者
  • CSIドライバ SMB
可能な等価:
  • CoreDNS。nodesPerReplicaを使用します。
  • ノード機能の検出、master.replicaCountの使用
  • AMD GPUオペレータ、controllerManager.replicasを使用
必須 1

クラスタごとにアドオン・デプロイメントのレプリカを1つ作成します。

2

クラスタごとにアドオン・デプロイメントの2つのレプリカを作成します。

rollingUpdate rollingUpdate

maxSurgeおよびmaxUnavailableによるローリング更新の望ましい動作を制御します。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

未使用者:
  • ノード機能検出
  • NVIDIAネットワーク事業者
  • CSIドライバ SMB
可能な等価:
  • NVIDIA GPU Operator、daemonsets.rollingUpdate.maxUnavailableを使用
  • AMD GPU演算子。devicePluginmetricsExportertestRunner configManagerまたはdraDriverupgradePolicyを使用します。
オプション null null
tolerations 許容範囲

テイントおよび許容範囲を使用して、アドオン・ポッドが実行されるワーカー・ノードを制御できます。

taintがあるノード上でポッドを実行するには、ポッドに対応する許容範囲が必要です。

tolerationsを、ポッドの許容範囲とワーカー・ノードのテイントの両方に一致するキー/値のペアに設定します。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

可能な等価:
  • ノード機能の検出。master.tolerationsまたはworker.tolerations、あるいはその両方を使用します。
  • NVIDIA GPU Operator、daemonsets.tolerationsを使用
  • NVIDIA Network Operator、operator.tolerationsを使用
  • CSIドライバSMB、controller.tolerationsを使用
  • AMD GPUオペレータ。 devicePluginmetricsExportertestRunnerconfigManagerdraDriverまたはcontrollerManagerで許容値を使用します。
オプション null [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]

この許容範囲を持つポッドのみが、tolerationKeyFoo=tolerationValBar:noScheduleテイントを持つワーカー・ノードで実行できます。

topologySpreadConstraints topologySpreadConstraints

指定されたトポロジ間で一致するポッドを分散する方法。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

未使用者:
  • ノード機能検出
  • NVIDIA GPUオペレータ
  • NVIDIAネットワーク事業者
  • CSIドライバ SMB
  • AMD GPU演算子
オプション null null
このクラスタ・アドオンに固有の構成引数
キー(APIおよびCLI) キーの表示名(コンソール) 説明 必須/オプション デフォルト値 値の例
cert-manager-cainjector.ContainerResources cert-manager-cainjectorコンテナ・リソース

アドオン・コンテナが要求するリソース数量を指定し、アドオン・コンテナが超過できないリソース使用量制限を設定できます。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

オプション null {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

100ミリコアのCPUと100メビバイトのメモリーをリクエストするアドオン・コンテナを作成します。アドオンコンテナを500MバイトのCPUおよび200Mバイトのメモリーに制限します。

cert-manager-controller.ContainerResources cert-manager-controllerコンテナ・リソース

アドオン・コンテナが要求するリソース数量を指定し、アドオン・コンテナが超過できないリソース使用量制限を設定できます。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

オプション null {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

100ミリコアのCPUと100メビバイトのメモリーをリクエストするアドオン・コンテナを作成します。アドオンコンテナを500MバイトのCPUおよび200Mバイトのメモリーに制限します。

cert-manager-webhook.ContainerResources cert-manager-webhookコンテナ・リソース

アドオン・コンテナが要求するリソース数量を指定し、アドオン・コンテナが超過できないリソース使用量制限を設定できます。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

オプション null {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

100ミリコアのCPUと100メビバイトのメモリーをリクエストするアドオン・コンテナを作成します。アドオンコンテナを500MバイトのCPUおよび200Mバイトのメモリーに制限します。

大規模なクラスタに関する考慮事項

次の表に、大規模クラスタでこのクラスタ・アドオンを構成する際の考慮事項を示します。

引数名 ロールWRTノード数 説明 クラスタ・サイズが増加するにつれて リスク 推奨事項
cert-manager-cainjector.ContainerResources あり

CAインジェクタのCPUおよびメモリーリソースを定義します。

CAインジェクタは、Webフック、カスタム・リソース定義およびAPIサービスにCAデータを追加します。

クラスタ・サイズが増加すると、次のようになります。

  • カスタム・リソース定義およびWebフック構成の数を増やすことができます。
  • パッチおよび更新操作の数が増える可能性があります。
  • APIサーバーの相互作用が増加します。

ワークロードは中程度に増加し、通常は証明書マネージャ・コントローラのワークロードよりも低くなります。

リソースのサイズが小さい場合:

  • CAバンドルの注入が遅れる可能性があります。
  • CAデータが欠落しているため、Webフックが失敗する可能性があります。

クラスタ・サイズが大きくなるにつれて、リソースを適度に増やします。通常、CAインジェクタでは、証明書マネージャ・コントローラよりもアグレッシブなリソース・スケーリングが少なくて済みます。

numOfReplicas なし

証明書マネージャ・コンポーネントのレプリカの数を制御します。

追加のレプリカにより、可用性とフォルト・トレランスが向上します。

Webフックは水平方向にスケーリングして、より多くの入場リクエストを処理できます。

  • コントローラのスループットは、レプリカの数と直線的に増加しません。
  • 一部のコンポーネントはリーダー選択を使用するため、アクティブなリーダーのみが特定の操作を実行します。
  • 少なくとも2つまたは3つのレプリカを使用してください。
  • APIリクエスト・ボリュームが大きい場合は、Webフック・レプリカの数を増やします。
affinity / nodeSelectors / tolerations なし

証明書マネージャ・コンポーネントの配置を制御します。

証明書マネージャは、制御プレーン・クリティカルなコンポーネントであり、ノード・チャーンおよびリソースの競合の影響を受ける可能性があります。

これらの引数が適切に構成されていない場合:

  • ポッドは、不安定なノードまたは過負荷のノードで実行される場合があります。
  • コンポーネントが再起動する可能性があります。
  • 証明書の操作が遅れる可能性があります。
  • 安定したノード、専用インフラストラクチャまたはシステム・ノード・プールで証明書マネージャ・コンポーネントを実行します。
  • ターゲット・ノードの汚染時に許容範囲を構成します。
rollingUpdate なし

デプロイメント更新戦略を制御します。

更新中:

  • コントローラのダウンタイムにより、証明書のリコンシリエーションが停止します。
  • Webフックの停止時間により、APIリクエストが失敗する可能性があります。
  • すべてのレプリカが同時に再起動される場合があります。
  • 証明書操作が一時的に一時停止される場合があります。
  • maxUnavailable 0 または最も低い実用値に設定します。
  • 更新時にコンポーネントの継続的な可用性を維持します。
topologySpreadConstraints なし

ノードおよび可用性ドメイン間でのポッドの分散方法を制御します。

  • すべてのレプリカが同じノードまたは同じ可用性ドメインで実行されないようにします。
  • ノード障害および可用性ドメイン障害に対する回復力を向上させます。

トポロジ分散制約が構成されていない場合:

  • すべてのポッドは、同じノードまたは同じ可用性ドメインで実行できます。
  • 1つの障害が発生すると、Webフックまたはコントローラが使用できなくなる可能性があります。

異なるノードおよび可用性ドメインにレプリカを分散します。

cert-manager-controller.ContainerResources あり

証明書マネージャ・コントローラ・ポッドのCPUおよびメモリー・リソースを定義します。

クラスタ・サイズが増加すると、次のリソースの数が増加する可能性があります。

  • 証明書
  • 証明書リクエスト
  • シークレット

コントローラの経験:

  • より大きなインフォーマ・キャッシュ
  • その他のウォッチイベント
  • より頻繁な照合
  • APIサーバー・インタラクションの増加

リソースのサイズが小さい場合:

  • コントローラのメモリー制限を超えているため、コントローラが終了する可能性があります。
  • 証明書のリコンシリエーションが遅くなる可能性があります。
  • 証明書の発行と更新が遅れる可能性があります。
  • イベント・キュー・バックログが開発される場合があります。
  • より大きなインフォーマ・キャッシュをサポートするためにメモリーを増やします。
  • CPUを増やして、追加のリコンシリエーション・アクティビティをサポートします。

これは、証明書マネージャのリソース・スケーリングの最も重要な引数です。

cert-manager-webhook.ContainerResources あり

証明書マネージャWebフックのCPUおよびメモリー・リソースを定義します。

Webフックにより、証明書マネージャのリソースが検証および変更されます。

クラスタ・サイズが増加すると、次のようになります。

  • APIリクエストの数を増やすことができます。
  • 入学Webフック・コールの数は増加する可能性があります。
  • このレイテンシの影響を受けるコンポーネントのリクエスト・ロードが増加します。

リソースのサイズが小さい場合:

  • 入学リクエストのレイテンシが増加する可能性があります。
  • Kubernetes APIサーバー操作は遅くなる可能性があります。
  • リソースの作成が失敗する可能性があります。
  • リクエスト処理に十分なCPUを割り当てます。
  • 中程度のメモリーサイズを使用します。