Azure Kubernetes 舰队管理器计划程序与计划框架
本文概述了 Azure Kubernetes 舰队管理器(舰队)中计划程序和计划框架的概念。
什么是计划程序?
计划程序是舰队工作负载中的核心组件,主要负责根据 ClusterResourcePlacement
生成的最新 ClusterSchedulingPolicySnapshot
确定适用于资源捆绑包的计划决策。
默认情况下,计划程序以批处理模式运行,这会提高性能。 在此模式下,它会尽可能将 ClusterResourceBinding
从 ClusterResourcePlacement
绑定到多个群集。
批处理模式
与在 Kubernetes 部署中计划 Pod 相比,在 ClusterResourcePlacement
中计划资源会涉及更多依赖项。 二者之间存在两个显著区别:
- 在
ClusterResourcePlacement
中,无法在同一群集上计划多个资源副本。 ClusterResourcePlacement
支持单个对象中使用不同的放置类型。
有关详细信息,请参阅开源舰队计划程序文档。
什么是计划框架?
舰队计划框架与本机 Kubernetes 计划框架紧密一致,并纳入多项修改和定制功能来支持舰队工作负载。
此框架的主要优点是它能够将插件直接编译到计划程序中。 其 API 可帮助将各种计划功能实现为插件,从而确保轻型且可维护的核心。
舰队计划程序集成了以下基础内置插件:
- 拓扑分布插件:支持放置策略中的
TopologySpreadConstraints
。 - 群集相关性插件:促进放置策略中的相关性子句。
- 相同放置相关性插件:专为舰队设计,可防止将多个副本放置在同一群集中。
- 群集资格插件:根据特定状态条件启用群集选择。
- 污点和容忍插件:基于群集上的污点和
ClusterResourcePlacement
上的容忍启用群集选择。
有关详细信息,请参阅开源舰队计划框架文档。