[FAQ] K8S 中 TiKV 的 pod 数量比yaml文件中配置的 replicas 值多

[问题澄清]
在 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 ,避免下次发生故障转移并恢复后自动缩容