87
社区成员




本文介绍了 Kubernetes 上 TiDB 集群管理常用使用技巧。
当 Pod 处于 CrashLoopBackoff
状态时,Pod 内容器不断退出,导致无法正常使用 kubectl exec
,给诊断带来不便。为了解决这个问题,TiDB in Kubernetes 提供了 PD/TiKV/TiDB Pod 诊断模式。在诊断模式下,Pod 内的容器启动后会直接挂起,不会再进入重复 Crash 的状态,此时,便可以通过 kubectl exec
连接 Pod 内的容器进行诊断。
操作方式:
首先,为待诊断的 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
等待 Pod 进入 Running 状态即可开始诊断:
Copy
watch kubectl get pod ${pod_name} -n ${namespace}
下面是使用 kubectl exec
进入容器进行诊断工作的例子:
kubectl exec -it ${pod_name} -n ${namespace} -- /bin/sh
诊断完毕,修复问题后,删除 Pod:
kubectl delete pod ${pod_name} -n ${namespace}
Pod 重建后会自动回到正常运行模式。
在一些测试场景中,如果你需要单独修改某一个 TiKV 实例配置,而不影响其他的 TiKV 实例,可以参考以下两种方式。
参考文档在线修改 TiKV 配置,使用 SQL 在线更新某一个 TiKV 实例的配置。
注意
这种方式的配置更新是临时的,不会持久化。这意味着,当该 TiKV 的 Pod 重启后,依旧会使用原来的配置。
让 TiKV Pod 进入诊断模式后,可以手动修改 TiKV 的配置文件,并指定使用修改后的配置文件启动 TiKV 进程。
·····
更多内容可见:https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/tips