Node Declared Features
FEATURE STATE:
Kubernetes v1.35 [alpha](disabled by default)Kubernetesノードは Declared Features を使用して、新規機能やフィーチャーゲート制御された特定の機能が利用可能かどうかを報告します。
コントロールプレーンコンポーネントは、この情報を利用してより適切な判断を行います。
kube-schedulerは、NodeDeclaredFeaturesプラグインを介して、Podが必要とする機能を明示的にサポートするノードにのみPodを配置します。
さらに、NodeDeclaredFeatureValidatorアドミッションコントローラーは、Pod更新時にノードが必要な機能を宣言しているかを検証します。
このメカニズムにより、バージョンスキューを管理でき、クラスターの安定性が向上します。 特に、クラスターのアップグレード時や、すべてのノードで同じ機能が有効になっていない可能性がある混合バージョン環境で有効です。 これは、新しいノードレベルの機能を導入するKubernetes機能開発者向けのもので、バックグラウンドで動作します。 Podをデプロイするアプリケーション開発者は、このフレームワークと直接やり取りする必要はありません。
動作の仕組み
- Kubeletによる機能報告: 起動時に、各ノード上のkubeletは、現在有効になっている管理対象のKubernetes機能を検出し、Nodeオブジェクトの
.status.declaredFeaturesフィールドで報告します。 このフィールドには、アクティブに開発中の機能のみが含まれます。 - スケジューラーによるフィルタリング: デフォルトのkube-schedulerは
NodeDeclaredFeaturesプラグインを使用します。 このプラグインは:PreFilterステージで、PodSpecをチェックして、Podが必要とするノード機能のセットを推測します。Filterステージで、ノードの.status.declaredFeaturesにリストされている機能が、Podに対して推測された要件を満たすかどうかをチェックします。 必要な機能を持たないノードにはPodはスケジュールされません。 カスタムスケジューラーも.status.declaredFeaturesフィールドを利用して、同様の制約を適用できます。
- アドミッションコントロール:
nodedeclaredfeaturevalidatorアドミッションコントローラーは、バインド先のノードで宣言されていない機能を必要とするPodを拒否でき、Pod更新時の問題を防ぎます。
Node Declared Featuresの有効化
Node Declared Featuresを使用するには、kube-apiserver、kube-scheduler、およびkubeletコンポーネントでNodeDeclaredFeaturesフィーチャーゲートを有効にする必要があります。
次の項目
- 詳細については、KEPを参照してください: KEP-5328: Node Declared Features
NodeDeclaredFeatureValidatorアドミッションコントローラーについて読む。
最終更新 January 04, 2026 at 9:36 PM PST: update docs (ea21ade4a7)