无法在集群内扩容PD节点

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:v2.1.5
  • 【问题描述】:为了测试节点扩容和缩容,我按照官网部署教程把所有的组件部署在一个节点上,每个组件各一个,部署成功后数据库能正常连接。但是按照教程进行PD扩容,启动之后使用pd-ctl查看新节点的PD没有加入到现有集群中。大致错误是集群id不匹配,不知道怎么排查,请指教。

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

推测是新扩容的 PD 节点没有加入到已有的 PD 集群里,产生了两个独立的 PD 集群,会报错 cluster id 不匹配。尝试先把新加的 PD 节点通过脚本 stop_pd.sh 停掉,删掉数据目录,重新加一次。

尝试了一下,还是不可以的,而且在两个节点的pd.log中一直打印错误日志,rafthttp: request cluster ID mismatch(get xxxxxxxx want xxxxxxxxxxx)

这里重新加的时候,是指定这个节点进行 deploy 。

我也是这么做的,就是在deploy.yml使用-l 再加上别名嘛。可是还是不对。

还有个问题,initialize后面的pd地址格式是 别名=http://ip:port , join后面的pd地址是否也要写成这种格式,还是直接写 http://ip:port 就行,不过这种方法我也试了,也不行,还是无法加入到集群中

deploy -l 别名 & start -l 别名 不成功,有什么报错,麻烦贴一下。

deploy -l 别名 & start -l 别名,这些都不会报错。但是查看pd集群的member,没有新添加的节点。只是部署节点的pd.log一直打印rafthttp: request cluster ID mismatch(get xxxxxxxx want xxxxxxxxxxx)这样的错误,就很奇怪。

1、报错的信息跟处理之前一样的吗? 2、先把异常的节点 stop ,清理掉对应的数据目录在进行后面的 deploy 和 start ,请问是按照这个顺序操作的吗?

是的,我就是这么操作的。而且滚动更新之后,集群内可用pd的配置文件中的initial_cluster已经把新节点的pd地址加进去了,但是新节点的pd配置文件中还是join,而且pd-ctl查看member也没有新节点。后来我把集群内可用pd的配置文件中的initial_cluster把新节点的pd地址删掉,重新滚动更新,没想到居然好了。下午再测试一下,不知道为什么会有这样的情况。

可以理解成是在之前的操作基础上删掉了配置文件中异常的 IP 信息,然后重新 deploy 吗?

是这样的,总结到位!这个问题终于解决了,非常感谢!

:+1::+1::+1: