Tidb部署时,pd一直起不来

为提高效率,提问时请尽量提供详细背景信息,问题描述清晰可优先响应。以下信息点请尽量提供:

  • 系统版本 & kernel 版本
  • TiDB 版本】 3.0.1
  • 磁盘型号
  • 集群节点分布
  • 数据量 & region 数量 & 副本数
  • 问题描述(我做了什么)
    helm部署tidb时,3个pd,有一个正常启动,其余两个看日志一直在报waiting for discovery service to return start args …
    查看discovery的pod,日志:Get http://test-pd.tidb-cluster:2379/pd/api/v1/members: dial tcp 172.254.150.4:2379: connect: connection refused
  • 关键词

172.254.150.4:2379 这个 ip 和端口是其中一个 pd 的 ip 和端口吗?

我也遇到这个问题
discovery的pod,一直提示 Get http://mytidb-pd.xxxx:2379/pd/api/v1/members: dial tcp 10.96.225.58:2379: connect: connection refused。
这个ip 10.96.225.58 是pd的service ip


应该是网络问题,能提示下怎么修改吗?

k8s version:1.18.3 ,本地通过VMware搭建的集群,然后参考 【K8S排错】在集群的POD内不能访问clusterIP和service_51CTO博客_k8s pod不能访问外网 ,修改mode为“ipvs”,tikv及tidb-cluster就创建成功了。具体细节还不太清楚:joy:

Discovery 服务是用来做 PD 集群启动引导的,每个 PD 启动的时候会首先请求 Discovery Pod 来获取一个启动参数。

这个报错的问题是 Service IP 无法访问,排查步骤是:
1,确认正常启动的 PD 节点的确没问题:查看日志,或者 pdctl 查看下是否能正常工作;
2,确认 K8s 集群的网络没有问题
3,如果该 PD 正常启动并且网络没问题,那么需要排查 ServiceIP 到 PodIP 的连通性,例如:Endpoint 是否正常生成了,以及 kube-proxy 组件是否正常工作等等。

1 个赞