Kubernetes 上的 TiDB 集群配置

    TiDB Operator 使用 Helm 部署和管理 TiDB 集群。通过 Helm 获取的配置文件默认提供了基本的配置,通过这个基本配置,可以快速启动一个 TiDB 集群。但是如果用户需要特殊配置或是用于生产环境,则需要根据以下配置参数列表手动配置对应的配置项。

    部署前需要根据实际情况和需求,为 TiDB 集群各个组件配置资源,其中 PD、TiKV、TiDB 是 TiDB 集群的核心服务组件,在生产环境下它们的资源配置还需要按组件要求指定,具体参考:。

    为了保证 TiDB 集群的组件在 Kubernetes 中合理的调度和稳定的运行,建议为其设置 Guaranteed 级别的 QoS,通过在配置资源时让 limits 等于 requests 来实现, 具体参考:配置 QoS

    TiDB 是分布式数据库,它的容灾需要做到在任一个物理拓扑节点发生故障时,不仅服务不受影响,还要保证数据也是完整和可用。下面分别具体说明这两种容灾的配置。

    TiDB 服务容灾本质上基于 Kubernetes 的调度功能来实现的,为了优化调度,TiDB Operator 提供了自定义的调度器,该调度器通过指定的调度算法能在 host 层面,保证 TiDB 服务的容灾,而且目前 TiDB Cluster 使用该调度器作为默认调度器,设置项是上述列表中的 schedulerName 配置项。

    其它层面的容灾(例如 rack,zone,region)是通过 Affinity 的 PodAntiAffinity 来保证,通过 PodAntiAffinity 能尽量避免同一组件的不同实例部署到同一个物理拓扑节点上,从而达到容灾的目的,Affinity 的使用参考:。

    下面是一个典型的容灾设置例子:

    数据的容灾

    在开始数据容灾配置前,首先请阅读集群拓扑信息配置。该文档描述了 TiDB 集群数据容灾的实现原理。