[问题澄清]
在 K8S 环境中查看 pod 时,发现配置的 TiKV pod 数量多余 replicas 的值
[原因分析]
当一个 TiKV Pod 无法正常工作后,该 Pod 对应的 Store 状态会变为 Disconnected
,30 分钟(通过 pd.config
文件中 [schedule]
部分的 max-store-down-time = "30m"
来配置)后会变成 Down
状态,TiDB Operator 会在此基础上再等待 5 分钟( tikvFailoverPeriod
可配置),如果该 TiKV Pod 仍不能恢复,就会新起一个 TiKV Pod。异常的 TiKV Pod 恢复后,考虑到自动缩容会引起数据的迁移,TiDB Operator 不会自动缩容新起的 Pod
https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/use-auto-failover#tikv-故障转移策略
[解决方案]
- 配置 spec.tikv.recoverFailover: true (从 TiDB Operator v1.1.5 开始支持)
TiDB Operator 会自动将新起的 TiKV Pod 缩容,请在集群缩容完成后,配置spec.tikv.recoverFailover: false
,避免下次发生故障转移并恢复后自动缩容