Azure Kubernetes 舰队管理器计划程序与计划框架

本文概述了 Azure Kubernetes 舰队管理器(舰队)中计划程序和计划框架的概念。

什么是计划程序?

计划程序是舰队工作负载中的核心组件,主要负责根据 ClusterResourcePlacement 生成的最新 ClusterSchedulingPolicySnapshot 确定适用于资源捆绑包的计划决策。

默认情况下,计划程序以批处理模式运行,这会提高性能。 在此模式下,它会尽可能将 ClusterResourceBindingClusterResourcePlacement 绑定到多个群集。

批处理模式

与在 Kubernetes 部署中计划 Pod 相比,在 ClusterResourcePlacement 中计划资源会涉及更多依赖项。 二者之间存在两个显著区别:

  • ClusterResourcePlacement 中,无法在同一群集上计划多个资源副本。
  • ClusterResourcePlacement 支持单个对象中使用不同的放置类型。

有关详细信息,请参阅开源舰队计划程序文档

什么是计划框架?

舰队计划框架与本机 Kubernetes 计划框架紧密一致,并纳入多项修改和定制功能来支持舰队工作负载。

此屏幕截图显示了舰队计划框架的概述关系图。

此框架的主要优点是它能够将插件直接编译到计划程序中。 其 API 可帮助将各种计划功能实现为插件,从而确保轻型且可维护的核心。

舰队计划程序集成了以下基础内置插件:

  • 拓扑分布插件:支持放置策略中的 TopologySpreadConstraints
  • 群集相关性插件:促进放置策略中的相关性子句。
  • 相同放置相关性插件:专为舰队设计,可防止将多个副本放置在同一群集中。
  • 群集资格插件:根据特定状态条件启用群集选择。
  • 污点和容忍插件:基于群集上的污点ClusterResourcePlacement 上的容忍启用群集选择

有关详细信息,请参阅开源舰队计划框架文档

后续步骤