📣

TiDB Cloud Serverless 现已更名为
TiDB Cloud Starter
!体验不变,名字焕新。
立即试用 →

重启 Kubernetes 上的 TiDB 集群

在使用 TiDB 集群的过程中,如果某个 Pod 存在内存泄漏等问题,可能需要重启集群。本文介绍如何优雅滚动重启 TiDB 集群中某个组件的所有 Pod,或单独优雅重启某个 Pod。

优雅滚动重启某个组件的所有 Pod

要优雅滚动重启某个组件(例如 PD、TiKV 或 TiDB)的所有 Pod,需要修改该组件对应的 Component Group Custom Resource (CR) 配置,在 .spec.template.metadata 部分添加 pingcap.com/restartedAt 的 label 或 annotation,并将其值设置为一个保证幂等性的字符串,例如当前时间。

以下示例展示如何为 PD 组件添加一个 annotation,从而触发对该 PDGroup 下所有 PD Pod 的优雅滚动重启:

apiVersion: core.pingcap.com/v1alpha1 kind: PDGroup metadata: name: pd spec: replicas: 3 template: metadata: annotations: pingcap.com/restartedAt: 2025-06-30T12:00

优雅重启某个组件的单个 Pod

你可以单独重启 TiDB 集群中的特定 Pod。不同组件的 Pod,操作略有不同。

对于 TiKV Pod,为确保有足够时间驱逐 Region leader,在删除 Pod 时需要指定 --grace-period 选项,否则操作可能失败。以下示例为 TiKV Pod 设置了 60 秒的宽限期:

kubectl -n ${namespace} delete pod ${pod_name} --grace-period=60

其他组件的 Pod 可以直接删除,TiDB Operator 会自动优雅重启这些 Pod:

kubectl -n ${namespace} delete pod ${pod_name}

文档内容是否有帮助?