Kubernetes v1.35 [alpha](默认禁用)Kubernetes 节点使用 声明式特性 来报告特定功能的可用性,包括新功能和特性门控功能。
控制平面组件利用这些信息以做出更好的决策。通过 NodeDeclaredFeatures,
kube-scheduler 确保 Pod 只被放置在明确满足 Pod 所需特性的节点上。 此外,
NodeDeclaredFeatureValidator 准入控制器会根据节点的声明式特性验证 Pod 更新。
这一机制帮助管理版本偏移并改善集群稳定性,尤其是集群在升级期间或集群处于混合版本环境时, 这些情况下各个节点可能没有都启用相同的特性。这是为 Kubernetes 特性开发人员准备的, 用于引入新的节点级特性并在后台运行;部署 Pod 的应用程序开发人员无需直接与此框架交互。
.status.declaredFeatures
字段中。只有积极开发的特性才会在此字段中列出。NodeDeclaredFeatures 插件。此插件:PreFilter 阶段,通过检查 PodSpec 来推断 Pod 所需要的阶段特性集。Filter 阶段,检查在节点 .status.declaredFeatures
字段列出的特性是否满足推测的 Pod 需求。在缺少所需特性的节点上,Pod
将不会被调度。自定义调度器同样可以利用 .status.declaredFeatures
字段来确保执行类似的约束。NodeDeclaredFeatureValidator 准入控制器可以拒绝 Pod
绑定到那些 Pod 需要的特性未被声明的节点上,从而防止 Pod 更新期间出现问题。想要使用节点声明式特性,必须在 kube-apiserver、kube-scheduler 和 kubelet 组件上启用
NodeDeclaredFeatures 特性门控。
NodeDeclaredFeatureValidator 准入控制器