出现问题
1.TiDB Dashboard无法正常使用
现象
修改相关的配置,尤其是超过一个pd的时候dashboard是无法打开的,需要打开tidb dashboard
排查步骤
1.在pd上添加如下配置,发现修改相关的配置无法打开dashboard
pd:
baseImage: pingcap/pd
config: |
[dashboard]
internal-proxy = true
2.查看pd相关的pod发现更新的配置没有滚动更新,该pod还是原先,通过delete也是如此。
3.后经排查发现缺少tc集群没有滚动更新的配置,添加滚动更新的配置
enableDynamicConfiguration: true
4.再次修改改配置的时候,发现pd滚动更新pod,对外也可以正常访问了。
2.dashboard通过ingress对外映射。
客户需要通过映射对外访问dashboard
解决步骤:
3.tikv副本数是6后来一台服务器下线维护过程中有一个产生,当维护的服务器上线后,现在副本数是7和期望的状态不一致,整个集群是false。
现象:
dashboard的状态有个tikv是离线状态,整个集群状态是false
排查步骤:
1.缩容tikv,由于一台服务器维护下线,tc由于设置tikv的副本数为6,由于下线的一台有tikv为保证副本数tc又拉起了一台tikv,维护的服务器又再次上线tikv也在线了,造成副本数为7与期望的6不符需要缩容,通过命名patch直接缩容成功了,也给客户解释了,防止服务器频繁上下线造成集群写入压力大,影响稳定性,这个operator为了防止频繁上下线做的操作。
2.进入pd的pod通过命令发现该下线的pod没有变成bonstone,手动删除该下线节点的id。./pd-ctl store delete 629(通过在pd里删除下线的tikv的id,会使该id自动下线,集群状态收集状态自动同步,状态变为True。)
4.pod出现CrashLoopBackOff
现象
通过kubectl get pod -n$ns时新扩容的pod总出现CrashLoopBackOff
排查步骤:
1.通过kubectl describe pod/$pod -n$ns。发现初始化失败重启后失败又重启。
2.通过查看该pod的日志,发现相关的报错,大致就是初始化数据的时候有相关的文件造成初始化数据文件失败。新的pod在往里写数据的时候写不进去。
3.通过解绑pv和pvc,删除pv里的数据,然后重新绑定解决。或者直接删除绑定pv里的数据,kubelet过两分钟还会重启该容器,最近该pod的状态为running。
5.客户直接修改sts造成tc状态为false
现象
经查看tc的状态为false,和sts的状态不一致。
排查步骤
1.由于直接修改sts造成集群的期望和tc的期望不一致,tc在获取机器的状态时造成不一致。
2.把修改的sts的扩缩容的副本数修改过来,以后通过tc对整个集群的管理。
小结:
以上均为在实际环境中常出现的问题,及相关的解决步骤和思路,请结合实际环境进行排查,图片如有任何不妥的地方,请私聊会做进一步的处理。