To use this feature, you (or a cluster administrator) will need to enable the NodeDeclaredFeatures feature gate for all relevant components in your cluster.
See Enable Or Disable Feature Gates for more information.
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 准入控制器