다음을 통해 공유

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

本文概述了 Azure Kubernetes Fleet Manager 中的计划程序和计划框架。

什么是计划程序?

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

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

批处理模式

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

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

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

什么是计划框架?

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

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

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

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

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

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

后续步骤