- 关于 TiDB Operator
- 快速上手
- 部署
- 安全
- 运维
- 升级 TiDB 集群
- 升级 TiDB Operator
- 灰度升级 TiDB Operator
- 暂停 TiDB 集群同步
- TiDB 集群伸缩
- 备份与恢复
- 重启 TiDB 集群
- 维护 TiDB 集群所在节点
- 查看日志
- 集群故障自动转移
- 销毁 TiDB 集群
- 从 Helm 2 迁移到 Helm 3
- 灾难恢复
- 导入集群数据
- 故障诊断
- 常见问题
- 参考
- 版本发布历史
- v1.1
- v1.0
- v0
重启 Kubernetes 上的 TiDB 集群
在使用 TiDB 集群的过程中,如果你发现某个 Pod 存在内存泄漏等问题,需要对集群进行重启,本文描述了如何优雅滚动重启 TiDB 集群内某个组件的所有 Pod 或通过优雅重启指令来将 TiDB 集群内某个 Pod 优雅下线然后再进行重新启动。
警告
在生产环境中,未经过优雅重启而手动删除某个 TiDB 集群 Pod 节点是一件极其危险的事情,虽然 StatefulSet 控制器会将 Pod 节点再次拉起,但这依旧可能会引起部分访问 TiDB 集群的请求失败。
优雅滚动重启 TiDB 集群组件的所有 Pod 节点
在标准 Kubernetes 上部署 TiDB 集群之后,通过 kubectl edit tc ${name} -n ${namespace}
修改集群配置,为期望优雅滚动重启的 TiDB 集群组件 Spec 添加 annotation tidb.pingcap.com/restartedAt
,Value 设置为当前时间。以下示例中,为组件 pd
、tikv
、tidb
都设置了 annotation,表示将优雅滚动重启以上三个 TiDB 集群组件的所有 Pod。可以根据实际情况,只为某个组件设置 annotation。
apiVersion: pingcap.com/v1alpha1
kind: TidbCluster
metadata:
name: basic
spec:
version: v5.0.6
timezone: UTC
pvReclaimPolicy: Delete
pd:
baseImage: pingcap/pd
replicas: 3
requests:
storage: "1Gi"
config: {}
annotations:
tidb.pingcap.com/restartedAt: 2020-04-20T12:00
tikv:
baseImage: pingcap/tikv
replicas: 3
requests:
storage: "1Gi"
config: {}
annotations:
tidb.pingcap.com/restartedAt: 2020-04-20T12:00
tidb:
baseImage: pingcap/tidb
replicas: 2
service:
type: ClusterIP
config: {}
annotations:
tidb.pingcap.com/restartedAt: 2020-04-20T12:00
文档内容是否有帮助?