【Tidb·专家必看】Kubernetes 上的 TiDB 集群管理常用使用技巧

伍六七叭酒 2022-03-17 11:59:07

本文介绍了 Kubernetes 上 TiDB 集群管理常用使用技巧。

诊断模式

当 Pod 处于 CrashLoopBackoff 状态时,Pod 内容器不断退出,导致无法正常使用 kubectl exec,给诊断带来不便。为了解决这个问题,TiDB in Kubernetes 提供了 PD/TiKV/TiDB Pod 诊断模式。在诊断模式下,Pod 内的容器启动后会直接挂起,不会再进入重复 Crash 的状态,此时,便可以通过 kubectl exec 连接 Pod 内的容器进行诊断。

操作方式:

  1. 首先,为待诊断的 Pod 添加 Annotation:

    Copy
    kubectl annotate pod ${pod_name} -n ${namespace} runmode=debug

    在 Pod 内的容器下次重启时,会检测到该 Annotation,进入诊断模式。

    注意

    如果 Pod 处于运行中,可以执行以下命令强制让容器重启。

    kubectl exec ${pod_name} -n ${namespace} -c ${container} -- kill -SIGTERM 1
  2. 等待 Pod 进入 Running 状态即可开始诊断:

    Copy
    watch kubectl get pod ${pod_name} -n ${namespace}

    下面是使用 kubectl exec 进入容器进行诊断工作的例子:

    Copy
    kubectl exec -it ${pod_name} -n ${namespace} -- /bin/sh
  3. 诊断完毕,修复问题后,删除 Pod:

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

Pod 重建后会自动回到正常运行模式。

单独修改某个 TiKV 的配置

在一些测试场景中,如果你需要单独修改某一个 TiKV 实例配置,而不影响其他的 TiKV 实例,可以参考以下两种方式。

在线更新

参考文档在线修改 TiKV 配置,使用 SQL 在线更新某一个 TiKV 实例的配置。

注意

这种方式的配置更新是临时的,不会持久化。这意味着,当该 TiKV 的 Pod 重启后,依旧会使用原来的配置。

进入诊断模式后修改配置

让 TiKV Pod 进入诊断模式后,可以手动修改 TiKV 的配置文件,并指定使用修改后的配置文件启动 TiKV 进程。

·····

更多内容可见:https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/tips

...全文
228 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

87

社区成员

发帖
与我相关
我的任务
社区描述
Tidb开发者
其他 企业社区
社区管理员
  • csdnsqst0014
  • kikokingzz
  • karina17
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

社区初立,为了鼓励小友们在社区中积极互动,现在有一个活动如下:

试试用AI创作助手写篇文章吧