你可以使用命令行或者从 .net core 程序中使用连接字符串来连接 mongo db 实例,能否指导一下如何实现呢?
我们在 DigitalOcean 上创建了一个示例集群,命名空间为 mongodatabase。
我们安装了 3 个副本的 mongo statefulset,并且成功地使用以下命令进行连接: kubectl --kubeconfig=configfile.yaml -n mongodatabase exec -ti mongo-0 mongo 但是,当我们按照以下格式使用不同的命名空间或默认命名空间中的 pod 名称进行连接时,连接失败。
我们在 DigitalOcean 上创建了一个示例集群,命名空间为 mongodatabase。
我们安装了 3 个副本的 mongo statefulset,并且成功地使用以下命令进行连接: kubectl --kubeconfig=configfile.yaml -n mongodatabase exec -ti mongo-0 mongo 但是,当我们按照以下格式使用不同的命名空间或默认命名空间中的 pod 名称进行连接时,连接失败。
kubectl --kubeconfig=configfile.yaml exec -ti mongo-0.mongo.mongodatabase.cluster.svc.local mongo
在连接Mongo客户端的命令行和程序(如Java/.NET Core等)时,需要使用正确的DNS名称/连接字符串,其中mongo-0.mongo.mongodatabase.cluster.svc.local位于pod-0.service_name.namespace.cluster.svc.local(也尝试过pod-0.statfulset_name.namespace.cluster.svc.local和pod-0.service_name.statefulsetname.namespace.cluster.svc.local)等中。
此外,我们应该在这里使用Kubernetes部署而不是有状态集吗?
kubectl exec
进行常规连接。你所拥有的主机名看起来很适合普通的Mongo客户端。 - David Maze