Node Declared Features

このページに記載されている情報は古い可能性があります

このページの更新日は英語版よりも古いため、記載されている情報が古い可能性があります。最新の情報をご覧になりたい方は英語版のページをご覧ください: Node Declared Features

Node Declared Features

FEATURE STATE: GA since Kubernetes v1.37
More information about this feature

This is a stable feature in Kubernetes, and has been since version v1.37. It was first available in the v1.35 release. You can no longer disable or opt out of this feature or behavior (it is locked); if you explicitly set a value for the associated feature gate NodeDeclaredFeatures, Kubernetes ignores it but does not report any error.

Kubernetesノードは Declared Features を使用して、新規機能やフィーチャーゲート制御された特定の機能が利用可能かどうかを報告します。 コントロールプレーンコンポーネントは、この情報を利用してより適切な判断を行います。 kube-schedulerは、NodeDeclaredFeaturesプラグインを介して、Podが必要とする機能を明示的にサポートするノードにのみPodを配置します。 さらに、NodeDeclaredFeatureValidatorアドミッションコントローラーは、Pod更新時にノードが必要な機能を宣言しているかを検証します。

このメカニズムにより、バージョンスキューを管理でき、クラスターの安定性が向上します。 特に、クラスターのアップグレード時や、すべてのノードで同じ機能が有効になっていない可能性がある混合バージョン環境で有効です。 これは、新しいノードレベルの機能を導入するKubernetes機能開発者向けのもので、バックグラウンドで動作します。 Podをデプロイするアプリケーション開発者は、このフレームワークと直接やり取りする必要はありません。

動作の仕組み

  1. Kubeletによる機能報告: 起動時に、各ノード上のkubeletは、現在有効になっている管理対象のKubernetes機能を検出し、Nodeオブジェクトの.status.declaredFeaturesフィールドで報告します。 このフィールドには、アクティブに開発中の機能のみが含まれます。
  2. スケジューラーによるフィルタリング: デフォルトのkube-schedulerはNodeDeclaredFeaturesプラグインを使用します。 このプラグインは:
    • PreFilterステージで、PodSpecをチェックして、Podが必要とするノード機能のセットを推測します。
    • Filterステージで、ノードの.status.declaredFeaturesにリストされている機能が、Podに対して推測された要件を満たすかどうかをチェックします。 必要な機能を持たないノードにはPodはスケジュールされません。 カスタムスケジューラーも.status.declaredFeaturesフィールドを利用して、同様の制約を適用できます。
  3. アドミッションコントロール: nodedeclaredfeaturevalidatorアドミッションコントローラーは、バインド先のノードで宣言されていない機能を必要とするPodを拒否でき、Pod更新時の問題を防ぎます。

Node Declared Featuresの有効化

Node Declared Featuresを使用するには、kube-apiserverkube-scheduler、およびkubeletコンポーネントでNodeDeclaredFeaturesフィーチャーゲートを有効にする必要があります。

次の項目

最終更新 January 04, 2026 at 9:36 PM PST: update docs (ea21ade4a7)