运行多个调度器

运行多个调度器

Kubernetes 允许你在单个集群内运行多个调度器。

本页介绍在集群中运行多个调度器的总体原则,假设这些调度器中至少有一个是默认的 kube-scheduler。如果你只运行自定义或第三方调度器,请参阅它们各自的文档。

部署策略

在运行多个调度器时,你必须确定它们彼此之间以及与集群节点之间如何交互。 有三种常见的部署场景:

高可用性(待命副本)

如果你想运行单个逻辑调度器(例如 kube-scheduler),但又要确保它发生故障时仍然可用, 你应该运行该调度器的多个副本并启用领导者选举。

启用领导者选举后,只有一个副本(领导者)处于活跃状态并调度 Pod,其他副本则处于待命状态。 如果活跃的领导者发生故障,其中一个待命副本会自动赢得领导者选举并接管调度工作。

有关如何配置的详细信息, 请参阅启用领导者选举。

多个调度方案或实例

如果你想针对不同的工作负载使用不同的配置或调度规则, 你可以配置单个 kube-scheduler 实例并使用多个调度方案, 也可以运行多个彼此独立的 kube-scheduler 实例。

  • 单个实例中的多个调度方案: 单个 kube-scheduler 进程可以运行多个调度方案 (每个方案都有唯一的调度器名称)。由于这些方案运行在同一进程中, 且共享同一个调度队列和缓存,因此它们不会做出相互冲突的调度决策。 如果你想通过将每个方案导向特定的节点池来隔离工作负载, 仍然可以使用节点亲和性。
  • 多个独立的实例: 如果你运行多个彼此独立的 kube-scheduler 进程(Deployment), 它们之间不会相互协调,可能会做出相互冲突的调度决策(例如过度分配某个节点的资源)。为避免这种情况, 每个调度器实例必须借助节点亲和性指向一组互不相交的节点。

将 kube-scheduler 与自定义调度器混用

如果你将 kube-scheduler 与自定义或第三方调度器一起运行, 请在互不相交的节点池上运行这些调度器,以避免资源冲突。 取决于你的自定义调度器是如何设计的,它可能支持以双活(active-active)配置运行, 也可能需要自己的领导者选举机制。请务必查阅你的自定义调度器的文档。

接下来

最后修改 October 12, 2026 at 3:41 PM PST: [zh] Add running-multiple-schedulers.md (ded11e8ccc)