0
2
2
0
专栏/.../

TiDB Operator常见问题和解决步骤(二)

 清风明月  发表于  2023-03-29

出现问题

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

解决步骤:

K8S-Ingress控制器

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对整个集群的管理。

小结:

以上均为在实际环境中常出现的问题,及相关的解决步骤和思路,请结合实际环境进行排查,图片如有任何不妥的地方,请私聊会做进一步的处理。

0
2
2
0

版权声明:本文为 TiDB 社区用户原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接和本声明。

评论
暂无评论