Node Declared Features

FEATURE STATE: Kubernetes v1.35 [alpha](disabled by default)

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)