tikv启动3个容器,2个失败,报错854

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【概述】k8s上docker容器启动,3个tikv节点有1个报错

【背景】清空挂载硬盘重新启动tikv服务,命令./tikv-server --config /config/tikv.toml >> /home/tikv.log &
另外tikv的配置文件仅修改了一些存储路径。

【现象】1个tikv启动失败


错误信息:
[2021/06/29 02:16:53.359 +00:00] [ERROR] [server.rs:854] [“failed to init io snooper”] [err_code=KV:Unknown] [err=“"IO snooper is not started due to not compiling with BCC"”]

【TiDB 版本】v5.0.1
配置文件.docx (33.9 KB)

麻烦参考下这个帖子排查下 TiKV无法启动

我看过这个帖子,我跟他的情况不太一样吧,我看了一下自己的集群硬盘正常挂载,而且我是新建集群,直接删除节点重建也试过不行,而且开始是两个tikv建起来了,但现在再看发现有两个的日志都有点问题,一个和上一个报同一个错误,另一个是这样:

可以提供一下完整的 tikv.log 和 tikv_err.log 吗

新建文本文档.txt (14.3 KB)
我只找到一个tikv.log

  1. 这个底层没有使用 operator 吗?
  2. 看起来,这个 tikv.log 并不是完整的日志。
  3. kubernetes 上部署集群的 yaml 文件能看一下吗?
  4. 您这面是通过什么方式部署的。

没有使用operator部署,是采用 TiDB Docker 部署方案部署。配置文件.docx (92.9 KB) 1.0是配置pv的我截掉了,可以算是全部yaml配置文件。

  1. 目前官方并没有提供 kubernetes 裸安装使用 tidb 的方案,建议您使用 operator。
    从监控日志里面看起来,应该是网络的问题导致了 tikv 与 pd 无法链接。
    建议您这面检查一下 kubernetes 的网络组件。从容器中使用 telnet 来检测endpoint 是否通畅。

  2. 您这面使用这个配置可以在 docker 里面把服务起来吗?
    使用的 image 是什么版本的?
    目前高版本的 docker 安装方式官方已经不维护了,建议考虑 3.0 的版本。

好吧我发现是tikv三个容器都报这个群,只是之前另外两个tikv容器映射的端口可以telnet通,我就以为是容器服务正确启动起来了。我删了重建一次,就是这报错:


这是我配置有问题吗?我用的节点是27G内存,应该够了吧,一个节点指启动一个tikv容器。

我使用的是v5.0.1

尝试一下 3.0 的版本吧。4.0 的版本应该就已经不维护了。

另外,建议您安装一下日志回收系统,您的 tikv 的日志并不完整。需要完整日志来排查情况。

tidb创建可以连数据库
pd我就测试了一个命令


这服务算是启动了吧(这么配置没有找到log)

是tidb上的吗?

另外我有考虑使用tidb operator进行部署,但是不知道是不是我部署的配置文档有问题,先会启动三个pd,且三个pd容器都因为绑定pv的问题启动失败,请问有详细一点的tidb集群配置文件吗?三个pd的话怎么挂载硬盘呢?

是 kubernetes 上的日志回收。
可以参照这个文档进行部署 https://docs.pingcap.com/zh/tidb/v4.0/test-deployment-using-docker#tidb-docker-部署方案
另外,里面的 image 使用了 latest 版本,建议您换成 3.0 的版本。

kubernetes 上裸安装 tidb cluster 可能会导致 pv 双写的问题。
如果 kubelet 上报的状态是有问题的,理论上 controller 会重新起一个新的 pod 挂在原来的 pv。
但如果底层的容器状态没有问题,依然写这个 pv,那么此时就会有两个容器同时写这个 pv。
这个时候是需要 operator 做一个状态管理的。

用新版本具体是为什么不可以呢?是配置参数有区别?

参数上会有不兼容的情况。
如果考虑在 kubernetes 上部署,可以参考
https://docs.pingcap.com/zh/tidb-in-kubernetes/stable

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。