使用Navicat本地连接K8S容器化MongoDB Replica Set

关于使用Navicat本地连接K8S容器化MongoDB Replica Set

使用Navicat本地连接K8S容器化MongoDB Replica Set时提示如下:
使用Navicat本地连接K8S容器化MongoDB Replica Set_第1张图片

mongodb No suitable servers found:‘serverSelectionTimeoutMS’ coneection refused calling ismaster on ‘***:27017’
mongo1.mongodb-01、mongo2.mongodb-01 、mongo3.mongodb-01为例
由于MongoDB Replica Set在连接过程会做一次节点间的互相识别(认识一下哪个节点是Primary,哪个节点是Secondary),而在K8S集群内部访问当然没有问题,可是如果外部网络想要进行连接,就会一个问题。K8S本身是以服务名.命名空间的形式进行网络访问通讯,外部以服务名.命名空间进行连接,返回得到的是经过kube-service DNAI后的IP,而Replica Set的hosts是以服务名或者服务名.命名空间组成,造成serverSelectionTimeoutMS。
我们可以用K8S内部的一个容器作为跳板机,做一下本地端口ssh转发+DNS解决:
ssh:

ssh jump_user@jump_ip -L 127.0.1.11:27017:mongo1.mongodb-01:27017 -L 127.0.1.12:27017:mongo2.mongodb-01:27017 -L 127.0.1.13:27017:mongo3.mongodb-01:27017

或者gost:

gost -L tcp://127.0.1.11:27017/mongo1.mongodb-01:27017 -L tcp://127.0.1.12:27017/mongo1.mongodb-01:27017 -L tcp://127.0.1.13:27017/mongo1.mongodb-01:27017 -F socks5://10.124.130.68:80

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
再次连接测试,成功:
使用Navicat本地连接K8S容器化MongoDB Replica Set_第2张图片

你可能感兴趣的:(MongoDB,容器,devops,运维,服务器)