ノード機能検出

ノード機能検出クラスタ・アドオンを有効にすると、次のキー/値ペアを引数として渡すことができます。

ほとんどのクラスタ・アドオンに共通の構成引数
キー(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 レプリカの数 アドオン・デプロイメントのレプリカの数。
未使用者:
  • AMD GPUプラグイン
  • NVIDIA GPUオペレータ
  • NVIDIAネットワーク事業者
  • CSIドライバ SMB
可能な等価:
  • CoreDNS。nodesPerReplicaを使用します。
  • ノード機能の検出、master.replicaCountの使用
  • AMD GPUオペレータ、controllerManager.replicasを使用
必須 1

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

2

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

rollingUpdate ローリング更新

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

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

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

taintおよびtolerationsを使用して、アドオン・ポッドが実行されるワーカー・ノードを制御できます。

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

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

プレーン・テキストまたは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 taintを持つワーカー・ノードで実行できます。

topologySpreadConstraints topologySpreadConstraints

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

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

未使用者:
  • ノード機能検出
  • NVIDIA GPUオペレータ
  • NVIDIAネットワーク事業者
  • CSIドライバ SMB
  • AMD GPU演算子
オプション null null
このクラスタ・アドオンに固有の構成引数
キー(APIおよびCLI) キーの表示名(コンソール) 説明 必須/オプション デフォルト値 値の例
master.tolerations nfdマスターの許容値 NFDマスター・ポッドに適用するカスタム許容範囲。 オプション
[{"key":"node-role.kubernetes.io/master","operator":"Equal","effect":"NoSchedule"},{"key":"node-role.kubernetes.io/control-plane","operator":"Equal","effect":"NoSchedule"}]
master.affinity nfdマスターのアフィニティー NFDポッドをスケジュールするためのノード・アフィニティ・ルール。 オプション
{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":1,"preference":{"matchExpressions":[{"key":"node-role.kubernetes.io/master","operator":"In","values":[""]}]}},{"weight":1,"preference":{"matchExpressions":[{"key":"node-role.kubernetes.io/control-plane","operator":"In","values":[""]}]}}]}}
master.config nfdマスターの構成

nfd-master.confにマージする追加のマスター構成。

プレーン・テキストのYAMLまたはJSON形式。

オプション null
master.resources nfdマスターのリソース NFDマスター・コンテナのリソース・リクエストおよび制限。プレーン・テキストのJSON形式。 オプション null
master.replicaCount nfdマスターのreplicaCount NFDマスター・デプロイメントのレプリカ数。 オプション null
master.extraArgs nfdマスター用のextraArgs

NFDマスター・コンテナの追加コマンドライン引数。

プレーン・テキストのJSON配列形式。

オプション null
master.annotations nfdマスターポッドの注釈 NFDマスター・ポッド・テンプレートにマージする注釈。 オプション null
priorityClassName nfdデプロイメントのpriorityClassName NFDマスターおよびgcデプロイメントのPriorityClassName。 オプション null
worker.config nfdワーカーの構成

nfd-worker.confにマージする追加のワーカー構成。

プレーン・テキストのYAMLまたはJSON形式。

オプション null
worker.resources nfdワーカーのリソース NFDワーカー・コンテナのリソース・リクエストおよび制限。プレーン・テキストのJSON形式。 オプション null
worker.tolerations nfdワーカーの許容範囲 NFDワーカー・ポッドに追加する追加の許容範囲。 オプション null
worker.nodeSelector nfdワーカーのnodeSelector NFDワーカーDaemonSetにマージするノード・セレクタのラベル。 オプション null
worker.priorityClassName nfdワーカーのpriorityClassName NFDワーカーDaemonSetのPriorityClassName。 オプション null
worker.extraArgs nfdワーカーのextraArgs

NFDワーカー・コンテナの追加コマンドライン引数。

プレーン・テキストのJSON配列形式。

オプション null
worker.annotations nfdワーカー・ポッドの注釈 NFDワーカー・ポッド・テンプレートにマージする注釈。 オプション null
master.customConfigData カスタムNFDマスター構成データ

node-feature-discovery-master-custom-conf ConfigMapのコンテンツを指定します。

指定すると、自動的にマウントされます。

オプション ""
worker.customConfigData カスタムNFDワーカー構成データ

node-feature-discovery-worker-custom-conf ConfigMapのコンテンツを指定します。

指定すると、自動的にマウントされます。

オプション ""
大規模なクラスタに関する考慮事項

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

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

ノード機能検出マスター・ポッドを、テイントされたコントロール・プレーンまたはインフラストラクチャ・ノードで実行できるかどうかを制御します。

  • ノード機能検出マスターが安定したコントロールプレーンまたはインフラストラクチャノード上で実行されていることを確認します。
  • ワークロード・アクティビティが高いワーカー・ノードでマスターが実行されないようにします。
  • クラスタ全体のノード・ラベル付けの信頼性を向上させます。

この引数が正しく構成されていない場合は、次のようにします。

  • マスター・ポッドは、ノード・テイントを許容できないため、 Pending 状態のままになる場合があります。
  • マスター・ポッドはワーカー・ノードで実行され、不安定になる場合があります。
  • クラスタ全体のラベルの更新が遅延したり、矛盾したりする可能性があります。
  • 常にコントロールプレーンテイントの許容値を含めます。
  • マスターが安定したノードで実行されていることを確認します。
  • ポッドの配置を制御するために、許容範囲とアフィニティ・ルールを組み合せます。
master.affinity あり

ノード機能検出マスター・ポッドの優先ノード配置を定義します。

  • 専用コントロールプレーンまたはインフラストラクチャノードでマスターを保持します。
  • アプリケーション・ワークロードの干渉を軽減します。
  • ノード・ラベル付け操作の一貫性を向上させます。

この引数が正しく構成されていない場合は、次のようにします。

  • マスターはワーカー・ノードで実行できます。
  • 同じノード上で複数のレプリカを実行できるため、高可用性を削減できます。
  • ノードのラベル付けが遅くなるか、一貫性がない可能性があります。
  • アフィニティ・ルールを使用して、コントロール・プレーンまたはインフラストラクチャ・ノードを優先します。
  • 複数のレプリカを使用する場合は、アンチアフィニティ・ルールを追加します。
  • マスター配置をクラスタ制御プレーン設計の一部として処理します。
master.customConfigData なし

ノード機能検出マスターのカスタム構成を有効にします。

この構成は、ノード機能の処理方法とラベル付け方法を制御します。影響:

  • 生成されたラベルの数
  • ラベル更新の頻度

この引数が正しく構成されていない場合は、次のようにします。

  • 過剰または不正なラベルが生成される可能性があります。
  • 頻繁なラベルの変更によって、Kubernetes APIサーバーの負荷が増大する可能性があります。
  • ノード間で機能検出が一貫していない可能性があります。
  • 構成は最小限に抑えます。
  • 必要な機能のみを構成します。
  • クラスタ全体にノードを適用する前に、ノードの小さいサブセットで構成を検証します。
worker.customConfigData なし

各ノードのカスタム機能検出ロジックを制御します。

ノード機能検出ワーカーは、すべてのノードでDaemonSetとして実行されます。したがって、追加の検出ロジックはすべてのノードで実行されます。

カスタム検出ロジックは、次のものに影響します。

  • ノードCPU使用率
  • ラベル付け頻度
  • クラスタ全体のラベル付けの一貫性

この引数が正しく構成されていない場合は、次のようにします。

  • ノードでのCPU使用率が増加する場合があります。
  • ラベルが正しくないか、矛盾している可能性があります。
  • ラベルの更新が頻繁に行われると、Kubernetes APIサーバーの負荷が高まる場合があります。
  • ワークロード・スケジューリングが影響を受ける可能性があります。
  • ワーカー構成を軽量に保ちます。
  • リソース集中型の検出ロジックを回避します。
  • クラスタ全体で構成を有効にする前に、ラベルを検証します。
  • ノードのリソース使用率をモニターします。