PD无法加入集群

【 TiDB 使用环境`】生产环境

【 TiDB 版本】5.4.0
【遇到的问题】新增的pd无法加入集群
【复现路径】清理过其中一个pd节点的数据目录,启动后无法重新加入
【问题现象及影响】 发现卡在获取pd集群member的步骤
wget -qO- -T 3 http://tidb-discovery.prod.svc:10261/new/aG1lcnAtcGQtMi5obWVycC1wZC1wZWVyLnByb2Quc3ZjOjIzODAK
wget: bad address ‘tidb-discovery.prod.svc:10261’

用nslookup是可以解析的(在pd容器内执行)
/ # nslookup tidb-discovery.prod.svc 10.252.0.2
Server: 10.252.0.2
Address: 10.252.0.2#53

Name: tidb-discovery.prod.svc.resher.net
Address: 10.252.254.157
** server can’t find tidb-discovery.prod.svc.resher.net: NXDOMAIN

discovery服务在容器外是可以获取到成员信息的,看着像是容器的问题,有点奇怪

清理 PD 节点重新加入的操作是重新配置 Container ,创建了一个新的 Docker 服务吗 ? 看一下新家的 PD 的docker 的log 看看是不是抱错 CLuster id 操作。这个可能原因是扩容 PD 的顺序不对,导致新的 PD server 创建了一个 cluster id 无法和老得 PD 集群连通导致的。正确做发可以参考一下 PD 扩容的文档 docs-cn/v1.0/op-guide/horizontal-scale.md at release-1.0 · pingcap/docs-cn · GitHub

1 个赞

麻了,应该是镜像问题,我直接docker run pingcap/pd:v5.4.0 启动,进入容器ping和wget这些命令都无法解析域名,但是使用IP的话这两个命令是可以执行的:tired_face::tired_face::tired_face:

同一台机器,pingcap/pd:v5.2.3的镜像启动,ping和wget完全没问题,我是不是去tidb-operator提问好一点:upside_down_face:

原因是我们内部的coredns开启了一个拒绝IPv6解析的配置

    template ANY AAAA {
      rcode NXDOMAIN
    }

PD镜像的初始化脚本用到了wget命令,而镜像里面的wget版本貌似优先使用ipv6,导致初始脚本无法完成

帖子转到这 扩容PD副本数,新的PD无法加入集群

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