Kubernetes 如何连接k8s集群中使用helm charts创建的mongodb副本集

Kubernetes 如何连接k8s集群中使用helm charts创建的mongodb副本集,kubernetes,kubernetes-helm,azure-aks,mongodb-replica-set,Kubernetes,Kubernetes Helm,Azure Aks,Mongodb Replica Set,我使用稳定的mongodb replicaset helm图表在Azure上托管的k8s集群内创建mongodb。mongodb有三个副本。stable-mongodb-replicaset用作子图表 我的发行名是skeleton。 我可以看到我的mongodb复制设置已设置并正在运行。我尝试连接它,它也工作良好。根据文档,我尝试使用服务客户端连接到这个复制集,但它抛出了错误 我用于连接的URL是 "mongodb://myuser:mydbpwd@skeleton-mongodb-repli

我使用稳定的mongodb replicaset helm图表在Azure上托管的k8s集群内创建mongodb。mongodb有三个副本。stable-mongodb-replicaset用作子图表


我的发行名是skeleton。 我可以看到我的mongodb复制设置已设置并正在运行。我尝试连接它,它也工作良好。根据文档,我尝试使用服务客户端连接到这个复制集,但它抛出了错误

我用于连接的URL是

"mongodb://myuser:mydbpwd@skeleton-mongodb-replicaset-client:27001/skeleton?authSource=admin&replicaSet=rs0"
mongodb服务的输出


我们使用的是驱动程序org.mongodb:mongodb驱动程序异步3.6.4版本,而我们使用的mongodb版本是4.0

无头服务用于控制网络域。 因此,要连接到replicaset,我认为您需要使用: "mongodb://myuser:mydbpwd@skeleton-mongodb-replicaset-0。skeleton-mongodb-replicaset:27001,skeleton-mongodb-replicaset-1。skeleton-mongodb-replicaset:27001,skeleton-mongodb-replicaset-2。skeleton-mongodb-replicaset:27001/?authSource=admin&replicaset=rs0“


对于@yanivoliver的第二个问题——为什么是非标准端口?

无头服务用于控制网络域。 因此,要连接到replicaset,我认为您需要使用: "mongodb://myuser:mydbpwd@skeleton-mongodb-replicaset-0。skeleton-mongodb-replicaset:27001,skeleton-mongodb-replicaset-1。skeleton-mongodb-replicaset:27001,skeleton-mongodb-replicaset-2。skeleton-mongodb-replicaset:27001/?authSource=admin&replicaset=rs0“


还有第二个@yanivoliver的问题-为什么是非标准端口?

您是故意使用端口27001而不是27017吗?您是故意使用端口27001而不是27017吗?事实上,您甚至只能使用一个主机名,即:
mongodb://myuser:mydbpwd@skeleton-mongodb-replicaset-0。skeleton-mongodb replicaset:27001/?authSource=admin&replicaset=rs0
事实上,您甚至只能使用一个主机名,即:
mongodb://myuser:mydbpwd@skeleton-mongodb-replicaset-0。skeleton-mongodb-replicaset:27001/?authSource=admin&replicaset=rs0
[1;30m2019-04-28 14:34:34,483 [0;39m => [34mINFO [0;39m [ [32mlocalhost-startStop-1 [0;39m] [33mcom.mongodb.diagnostics.logging.SLF4JLogger [0;39m: Cluster created with settings {hosts=[skeleton-mongodb-replicaset-client:27001], mode=MULTIPLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
[1;30m2019-04-28 14:34:34,485 [0;39m => [34mINFO [0;39m [ [32mlocalhost-startStop-1 [0;39m] [33mcom.mongodb.diagnostics.logging.SLF4JLogger [0;39m: Adding discovered server skeleton-mongodb-replicaset-client:27001 to client view of cluster
[1;30m2019-04-28 14:34:34,984 [0;39m => [34mINFO [0;39m [ [32mcluster-ClusterId{value='5cc5b9fab13658000122961a', description='null'}-skeleton-mongodb-replicaset-client:27001 [0;39m] [33mcom.mongodb.diagnostics.logging.SLF4JLogger [0;39m: Exception in monitor thread while connecting to server skeleton-mongodb-replicaset-client:27001
com.mongodb.MongoSocketOpenException: Exception opening socket
        at com.mongodb.connection.netty.NettyStream$2.operationComplete(NettyStream.java:158)
        at com.mongodb.connection.netty.NettyStream$2.operationComplete(NettyStream.java:145)
        at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511)
        at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:504)
        at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:483)