TiCDC如何配置需要监听的PD URL

目前想用TiCDC来完成TiDB - kafka - Elasticsearch数据同步,TIDB的所有组件都是在K8S中运行,但是TiCDC启动之后,日志显示如下:


原因是:在我K8S里的pd的名字叫 image
请问在哪里可以配置TiCDC连接的PD url呢?

1 个赞

可以尝试找到 basic-pd-0 这个实例的 IP 地址,另外需要 ticdc 的pod 能够访问这个 IP地址

1 个赞

basic-pd-0的K8S IP是这个

我进入TiCDC的一个节点,ping basic-pd-0 也能访问的通
image

运行 capture list 也是报的 [pd] failed to get cluster id
image

这是pd cluster_id信息:

我目前猜测是 TiCDC 连接的 PD URL不对。可是在哪里能修改呢?

1 个赞

发一下 cdc 启动时的完整日志,看看 cdc server 的配置,是不是一直有 warn 报错

1 个赞

改成 capture list --pd=http://basic-pd:2379 或者 --pd=http://basic-pd-0:2379 试试呢

1 个赞

启动是一直在报错。

1 个赞

capture list --pd=http://basic-pd:2379 运行结果:

capture list --pd=http://basic-pd-0:2379 运行结果:

将basic-pd-0换为K8S POD的ip capture list --pd=http://10.30.101.5:2379 运行结果:

TiCDC操作步骤:

编辑yaml:
kubectl edit tc basic -n tidb-cluster
加入TiCDC配置:
spec:
  ticdc:
    baseImage: pingcap/ticdc
    replicas: 3
保存:wq
1 个赞

检查下 service ip, kubectl get svc -n ${namespace} | grep “-pd”,如果 service ip 没问题,看看是不是网络方面的原因
https://docs.pingcap.com/zh/tidb-in-kubernetes/dev/network-issues/#pod-之间网络不通

1 个赞

查看ip

DEBUG TiCDC 发现ping不通这个ClusterIP,我去看看网络问题。
image

1 个赞

设置了kube-proxy之后,TiKV, TiPD等pod都能ping servicename了。但是TiCDC使用servicename的方式会出现 bad address ‘xxx’, 这是为什么呢?直接ping basic-pd 的 cluser ip可以ping通。因为TiCDC没法直接ping basic-od,所以启动还是会出现上面的问题。
如图:TiCDC ping serviceName 以及直接 ping cluster ip:
1X%253Z4S%7BG6~M%5D1%25IR)(9(8D

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