外部应用访问K8s搭建的Tidb集群失败

【 TiDB 使用环境】生产\测试环境\ POC
测试环境

【 TiDB 版本】
5.4.1

【遇到的问题】
外部spark集群需要访问K8s部署的Tidb集群。遇到域名无法解析的问题。

【复现路径】
【问题现象及影响】

【TiDB Operator 版本】:
1.3

【K8s 版本】:

【附件】:

k8s的tidb域名是k8s集群内部访问的。你外部要访问需要先把k8s访问地址映射出来。

是需要吧所有部署的pod都映射出来吗?应该映射到什么IP上呢?如果是映射到pod上,那么如何解决pod ip漂移问题呢?

nodeport,自己建svc,用选择器选择对应的组件。你是tispark访问pd,如果是on yarn的估计有问题,因为pd返回的是内部地址,你还得在所有节点上知道host,如果是on k8s的就没问题

是 on yarn的模式,就是因为不在一个集群里面,会有解析的问题。所以要处理两个问题.1、DNS解析k8s内部域名,这个已经解决了。2、pod的ip漂移问题,重新拉起后,pod的ip会变,大佬有什么好的建议吗?

https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/faq#tidb-operator-支持-tispark-吗

  1. 直接使用 k8s 的 NodePort 即可。
    TiDB 组件的 service type 更改为 NodePort,这样就可以使用“任意”的 k8s node IP + NodePort 来访问 TiDB 服务了。

    建议指定 NodePort 端口,这样可以保持端口不会因意外而更改。建议 IP 也使用一个“稳定的” node 的 IP,也就是这个 node 不会被“轻易”缩容掉。

  2. 在外部 DNS 服务器上创建一个域名,指向第一步中的 IP。
    这样,你就可以正常使用域名访问 k8s 中的 TiDB 服务了。(只不过是外部域名)

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