发布时间:2023-04-11 19:30
TiDB Scheduler 是 Kubernetes 调度器扩展 的 TiDB 实现。TiDB Scheduler 用于向 Kubernetes 添加新的调度规则。本文介绍 TiDB Scheduler 扩展调度器的工作原理。
Kubernetes 集群中默认会部署一个 kube-scheduler,用于 Pod 调度,默认调度器名字为 default-scheduler
。
在早期 Kubernetes 版本中 (< v1.16),默认调度器对于 Pod 均匀调度支持不够灵活,因此我们实现了 TiDB Scheduler 用于扩展 Kubernetes 默认调度器的调度规则,支持 TiDB 集群 Pod 的均匀调度,名字为 tidb-scheduler
。
从 Kubernetes v1.16 开始,Kubernetes 默认调度器引入了 EvenPodsSpread 特性,控制 Pod 在集群内故障域之间的分布。该特性在 v1.18 进入 beta,在 v1.19 正式 GA。
因此,如果 Kubernetes 集群满足下面条件之一,就不需要使用 tidb-scheduler
,直接使用 default-scheduler
。你需要为组件配置 topologySpreadConstraints,即可实现 tidb-scheduler
的均匀调度功能。