使用Navicat本地连接K8S部署的MongoDB

kubernetes部署的mongodb在使用本地Navicat连接时,报错连接失败,以及版本问题,或者其他网络问题等。

小编是深有体会,接下来,我把我遇到的问题以及处理方式做个简单叙述。

在k8s部署应用状态以及pod日志输出和集群内部访问都没问题,在使用外部本地连接时,报错如下:No suitable servers found:‘serverSelectionTimeoutMS’ coneection refused calling ismaster on ‘***:27017’

由于MongoDB Replica Set在连接过程会做一次节点间的互相识别(认识一下哪个节点是Primary,哪个节点是Secondary),而在K8S集群内部访问当然没有问题,可是如果外部网络想要进行连接,就容易出问题。K8S本身是以服务名.命名空间的形式进行网络访问通讯,外部以服务名.命名空间进行连接,返回得到的是经过kube-service DNAI后的IP,而Replica Set的hosts是以服务名或者服务名.命名空间组成,造成serverSelectionTimeoutMS。

C:\Windows\System32\drivers\etc\hosts添加一下字段:
127.0.1.11 mongo1.mongodb-01
127.0.1.12 mongo2.mongodb-01
127.0.1.13 mongo3.mongodb-01

我已一个节点演示:

按照如上配置,端口一定是我们使用NodePort暴露的端口!

点击发现~不报错!!

然后点击测试连接!!

连接成功!!!!!!

=============================================

如果测试连接报错如下:

说明你使用的版本和Navicat不兼容,怎么办呢?只能修改兼容的版本!

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bilibili_架构师九哥

欢迎您的观看,留点什么吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值