mongodb - 连接到不同命名空间中的 Kubernetes mongo db

标签 mongodb kubernetes kubernetes-statefulset

谁能指出如何使用命令行客户端或使用连接字符串从 .net 核心程序使用 mongo 客户端连接到 mongo 数据库实例?

我们在 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-0.mongo.mongodatabase.cluster.svc.localpod-0.service_name.namespace.cluster.svc.local 中(也试过 pod -0.statfulset_name.namespace.cluster.svc.local 和 pod-0.service_name.statefulsetname.namespace.cluster.svc.local) 等,

任何人都可以帮助在命令行中连接 mongo 客户端以及从 java/.net core 等程序连接时使用正确的 dns 名称/连接字符串吗?

我们还应该在这里使用 kubernetes 部署而不是 statefulsets 吗?

最佳答案

您需要通过命名空间的 dns 来引用 mongo 服务。因此,如果您的 mongo 服务是 mymongoapp 并且它部署在 mymongonamespace 中,您应该能够以 mymongoapp.mymongonamespace 访问它。

为了测试,我使用了 bitnami/mongodb docker 客户端。如下:

mymongonamespace 中,此命令有效

$ kubectl config set-context --current --namespace=mymongonamespace
$ kubectl run mongodbclient --rm --tty -i --image bitnami/mongodb --command -- mongo --host mymongoapp

但是当我切换到命名空间默认值时它不起作用

$ kubectl config set-context --current --namespace=default
$ kubectl run mongodbclient --rm --tty -i --image bitnami/mongodb --command -- mongo --host mymongoapp

然后使用命名空间限定主机

$ kubectl run mongodbclient --rm --tty -i --image bitnami/mongodb --command -- mongo --host mymongoapp.mymongonamespace

关于mongodb - 连接到不同命名空间中的 Kubernetes mongo db,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56334974/

相关文章:

c# - 将 List<[KnownType]> 转换为 List<T> 以匹配函数的返回类型?

kubernetes - haproxy 作为 kube-apiserver 的负载均衡器

kubernetes - StatefulSet 的 Pod 名称解析不起作用

kubernetes - 使用新的 PersistentVolume 重新创建由 StatefulSet 管理的 Pod

Kubernetes StatefulSets 和 livenessProbes

java - 使用 DropWizard 和 MongoDB 在多个值中搜索关键字

database-design - 基于游戏服务器日志事件的玩家统计数据的 MongoDB 架构设计?

kubernetes - 即使 servicemonitor 可用并出现在服务发现中,Gitlab 指标也不会被 prometheus 抓取

kubernetes - restartPolicy:不支持的值: “Never”:支持的值: “Always”

javascript - 每次为每个请求提供相同的输出