kubeblocks 中使用tidb,无法连接到tidb server

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】
【TiDB Operator 版本】:
【K8s 版本】:
【附件:截图/日志/监控】

在kubeblocks 中使用tidb,无法连接到tidb server

查看集群状态:

[root@rocky9 ~]# kbcli clusterdefinition list | egrep 'NAME|tidb'
NAME               MAIN-COMPONENT-NAME   STATUS      AGE
tidb               pd                    Available   19h

pd是入口,会影响 kbcli connect 选择的 service

main component 是 clusterdefinition 中第一个 componentDef 的名字 (.spec.componentDefs[0].name),想要调整顺序可以修改 clusterdefinition

[root@rocky9 ~]# kbcli cluster connect tidb-demo 
Connect to instance tidb-demo-pd-0
error: unsupported engine type: tidb

另外,能否升级下版本到 v7.5.1 ?

pd是入口,会影响 kbcli connect 选择的 service

kbcli connect 可以传入 --component 参数来指定要连接哪个组件。


error: unsupported engine type: tidb

这个错误是 kubeblocks/pkg/lorry/engines/register/managers.go at ec98faed7e4782043efe32076b49351c3a783b28 · apecloud/kubeblocks · GitHub 这里报的,要解决这个错误,需要做类似 RegisterEngine(models.TiDB, "", tidb.NewManager, mysql.NewCommands) 这样的注册。然后执行 kbcli cluster connect 时会先 kubectl exec 进入 TiDB Pod,再执行 mysql xxx 这样的命令。不过,TiDB image 是没有包含 mysql client 的 binary 的,所以这样执行时也还是会失败。


另外,能否升级下版本到 v7.5.1 ?

通过 Helm Chart 安装 TiDB addon 时,可以通过 .image.tag 指定 TiDB 版本, ref kubeblocks-addons/addons/tidb/values.yaml at bf57f6d7ed0987b900fe95e7c2485b4330004c50 · apecloud/kubeblocks-addons · GitHub

1 个赞

那这样使用kb自带命令就没法连接到tidb集群了是么?

我是指默认的那个版本,可以升级一下吗?

没办法用 kbcli connect 连。要用的话,需要重新 build TiDB image 把 mysql client 加进去,再修改上面说到的 Engine 注册逻辑。

我是指默认的那个版本,可以升级一下吗?

https://github.com/apecloud/kubeblocks-addons/pull/513

那确实有点麻烦了,感谢答疑。

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