87
社区成员




TiDB Operator 基于 StatefulSet 管理 Pod 的部署和扩缩容,但 StatefulSet
在某些 Pod 或者节点发生故障时不会自动创建新 Pod 来替换旧 Pod。为解决此问题,TiDB Operator 支持通过自动扩容 Pod 实现故障自动转移功能。
故障自动转移功能在 TiDB Operator 中默认开启。
部署 TiDB Operator 时,可以在 charts/tidb-operator/values.yaml
文件中配置 TiDB 集群中 PD、TiKV、TiDB 和 TiFlash 组件故障转移的等待超时时间。示例如下:
controllerManager:
...
# autoFailover is whether tidb-operator should auto failover when failure occurs
autoFailover: true
# pd failover period default(5m)
pdFailoverPeriod: 5m
# tikv failover period default(5m)
tikvFailoverPeriod: 5m
# tidb failover period default(5m)
tidbFailoverPeriod: 5m
# tiflash failover period default(5m)
tiflashFailoverPeriod: 5m
其中,pdFailoverPeriod
、tikvFailoverPeriod
、tiflashFailoverPeriod
和 tidbFailoverPeriod
代表在确认实例故障后的等待超时时间,默认均为 5 分钟。超过这个时间后,TiDB Operator 就开始做故障自动转移。
另外,在配置 TiDB 集群时,可以通过 spec.${component}.maxFailoverCount
指定 TiDB Operator 在各组件故障自动转移时能扩容的 Pod 数量阈值,详情请参考 TiDB 组件配置文档。
关于正方面的内容,如果想了解更多的话,我整理了一下,大家可以看看这个:https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/use-auto-failover