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