MongooseServerSelectionError:使用Minikube时无法连接到MongoDB Atlas集群中的任何服务器

尚卡·索马西里(Shanka Somasiri)

我已经使用node创建了REST API,并使用Kubernetes和Docker将其容器化。kubernetes容器在minikube环境中运行,用于开发目的。

该应用程序运行良好,现在出现以下错误。

[distribution] Initial Distribution API Database connection error occured - MongooseServerSelectionError: Could not connect to any servers in your MongoDB Atlas cluster. One common reason is that you're trying to access the database from an IP that isn't whitelisted. Make sure your current IP address is on your Atlas cluster's IP whitelist: https://docs.atlas.mongodb.com/security-whitelist/
[distribution]     at NativeConnection.Connection.openUri (/app/node_modules/mongoose/lib/connection.js:830:32)
[distribution]     at Mongoose.connect (/app/node_modules/mongoose/lib/index.js:335:15)
[distribution]     at /app/src/index.ts:60:8
[distribution]     at step (/app/src/index.ts:34:23)
[distribution]     at Object.next (/app/src/index.ts:15:53)
[distribution]     at fulfilled (/app/src/index.ts:6:58)
[distribution]     at processTicksAndRejections (node:internal/process/task_queues:93:5) {
[distribution]   reason: TopologyDescription {
[distribution]     type: 'ReplicaSetNoPrimary',
[distribution]     setName: null,
[distribution]     maxSetVersion: null,
[distribution]     maxElectionId: null,
[distribution]     servers: Map(3) {
[distribution]       'cluster0-shard-00-00.psdty.mongodb.net:27017' => [ServerDescription],
[distribution]       'cluster0-shard-00-01.psdty.mongodb.net:27017' => [ServerDescription],
[distribution]       'cluster0-shard-00-02.psdty.mongodb.net:27017' => [ServerDescription]
[distribution]     },
[distribution]     stale: false,
[distribution]     compatible: true,
[distribution]     compatibilityError: null,
[distribution]     logicalSessionTimeoutMinutes: null,
[distribution]     heartbeatFrequencyMS: 10000,
[distribution]     localThresholdMS: 15,
[distribution]     commonWireVersion: null
[distribution]   }
[distribution] }

该问题似乎是MongoDB连接URL /访问问题,但连接字符串正确。(在MongoDB Cloud支持下再次对其进行了检查)。相关网络访问权限授予每个人

在此处输入图片说明

我还可以确认可以使用相同的连接URL通过MongoDB指南针访问MongoCloudDB

在此处输入图片说明

我的猜测是无法从MonkDB数据库的minikube内部的pod中建立连接。

你们中的任何人对如何克服这一点有任何想法吗?

Pod和外部服务的kubernetes配置

apiVersion: apps/v1
kind: Deployment
metadata:
  name: distribution-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: distribution
  template:
    metadata:
      labels:
        app: distribution
    spec:
      containers:
        - name: distribution
          image: ssomlk/distribution
          env:
            - name: MONGO_URI
              value: 'mongodb://ssomlk:<password>@cluster0-shard-00-00.yeu7t.mongodb.net:27017,cluster0-shard-00-01.yeu7t.mongodb.net:27017,cluster0-shard-00-02.yeu7t.mongodb.net:27017/<db_name>?ssl=true&replicaSet=atlas-fznj9q-shard-0&authSource=admin&retryWrites=true&w=majority'
            - name: JWT_ACCESS_TOKEN_KEY
              valueFrom:
                secretKeyRef:
                  name: jwt-secret
                  key: JWT_ACCESS_TOKEN_KEY
            - name: JWT_REFRESH_TOKEN_KEY
              valueFrom:
                secretKeyRef:
                  name: jwt-secret
                  key: JWT_REFRESH_TOKEN_KEY
            - name: JWT_ACCESS_TOKEN_EXPIRES_IN
              value: '15m'
            - name: JWT_REFRESH_TOKEN_EXPIRES_IN
              value: '60m'
            - name: NATS_CLIENT_ID
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: NATS_URL
              value: 'http://nats-srv:4222'
            - name: NATS_CLUSTER_ID
              value: nats-distribution-mailing
            - name: MAIL_USER
              valueFrom:
                secretKeyRef:
                  name: mail-secret
                  key: MAIL_USER
            - name: MAIL_PWD
              valueFrom:
                secretKeyRef:
                  name: mail-secret
                  key: MAIL_PWD
            - name: POOL_SIZE
              value: '8'
---
apiVersion: v1
kind: Service
metadata:
  name: distribution-srv
spec:
  type: ClusterIP
  selector:
    app: distribution
  ports:
    - name: distribution
      protocol: TCP
      port: 3000
      targetPort: 3000
Abhinav库马尔

在您的配置中,无法从群集内部解析mongdb uri,您必须创建一个外部服务以使uri可解析。请以下面的配置为例。

kind: Deployment
metadata:
  name: distribution-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: distribution
  template:
    metadata:
      labels:
        app: distribution
    spec:
      containers:
        - name: distribution
          image: ssomlk/distribution
          env:
            - name: MONGO_URI
              value: my-service
            - name: JWT_ACCESS_TOKEN_KEY
              valueFrom:
                secretKeyRef:
                  name: jwt-secret
                  key: JWT_ACCESS_TOKEN_KEY
            - name: JWT_REFRESH_TOKEN_KEY
              valueFrom:
                secretKeyRef:
                  name: jwt-secret
                  key: JWT_REFRESH_TOKEN_KEY
            - name: JWT_ACCESS_TOKEN_EXPIRES_IN
              value: '15m'
            - name: JWT_REFRESH_TOKEN_EXPIRES_IN
              value: '60m'
            - name: NATS_CLIENT_ID
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: NATS_URL
              value: 'http://nats-srv:4222'
            - name: NATS_CLUSTER_ID
              value: nats-distribution-mailing
            - name: MAIL_USER
              valueFrom:
                secretKeyRef:
                  name: mail-secret
                  key: MAIL_USER
            - name: MAIL_PWD
              valueFrom:
                secretKeyRef:
                  name: mail-secret
                  key: MAIL_PWD
            - name: POOL_SIZE
              value: '8'
---
apiVersion: v1
kind: Service
metadata:
  name: distribution-srv
spec:
  type: ClusterIP
  selector:
    app: distribution
  ports:
    - name: distribution
      protocol: TCP
      port: 3000
      targetPort: 3000
kind: Service
metadata:
  name: my-service
  namespace: prod
spec:
  type: ExternalName
  externalName: 'mongodb://ssomlk:<password>@cluster0-shard-00-00.yeu7t.mongodb.net:27017,cluster0-shard-00-01.yeu7t.mongodb.net:27017,cluster0-shard-00-02.yeu7t.mongodb.net:27017/<db_name>?ssl=true&replicaSet=atlas-fznj9q-shard-0&authSource=admin&retryWrites=true&w=majority'```

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

错误:“无法连接到MongoDB Atlas集群中的任何服务器”

来自分类Dev

mongodb无法连接到服务器

来自分类Dev

MongoNetworkError:首次连接时无法连接到服务器[mongodb:27017]

来自分类Dev

使用Java访问MongoDB时连接到服务器localhost:27017时监视器线程中的异常

来自分类Dev

无法启动 Redis 集群服务器

来自分类Dev

Node 服务器的 Systemd 服务无法连接到 MongoDB

来自分类Dev

使用 volley 连接到 android 中的服务器时出现内部服务器错误?

来自分类Dev

Mongo在首次连接时无法连接到服务器

来自分类Dev

无法从安装了Minikube的主机上的docker容器中运行kubectl“连接到服务器127.0.0.1:32768的连接被拒绝”

来自分类Dev

无法连接到MongoDB集群

来自分类Dev

无法连接到远程mongodb服务器

来自分类Dev

MongoDB错误无法连接到服务器

来自分类Dev

错误:无法连接到服务器127.0.0.1:27017 MongoDB

来自分类Dev

NodeJS无法连接到服务器ECONNREFUSED上的MongoDB

来自分类Dev

MongoDB安装后错误,无法连接到服务器

来自分类Dev

连接到mongodb服务器时“无效的ns”

来自分类Dev

webView:didFailLoadWithError -1004:在Phonegap ios中连接google plus时无法连接到服务器

来自分类Dev

使用集群(NDBCluster 或 Galera)时,nodejs 应用程序如何连接到故障转移 MySQL 服务器之一?

来自分类Dev

执行Cordova仿真时无法连接到服务器

来自分类Dev

无法使用猫鼬连接到Mongodb Atlas

来自分类Dev

无法使用 Scala 驱动程序连接到 MongoDB Atlas

来自分类Dev

有时无法使用域名连接到ubuntu 14.04 LTS服务器

来自分类Dev

未处理的拒绝MongoError:无法连接到MongoDB中的服务器

来自分类Dev

使用Node JS连接到Atlas MongoDB时出错

来自分类Dev

在 Cloudera 中设置集群时与服务器通信时出错

来自分类Dev

14.04中更改了“连接到服务器”选项?无法使用WebDav连接

来自分类Dev

Python3:cassandra.cluster.NoHostAvailable :(将来使用execute_async时(“无法使用键空间'test'',['127.0.0.1']连接到任何服务器))

来自分类Dev

使用Ionic连接到MongoDB远程服务器

来自分类Dev

无法连接到mongodb服务

Related 相关文章

  1. 1

    错误:“无法连接到MongoDB Atlas集群中的任何服务器”

  2. 2

    mongodb无法连接到服务器

  3. 3

    MongoNetworkError:首次连接时无法连接到服务器[mongodb:27017]

  4. 4

    使用Java访问MongoDB时连接到服务器localhost:27017时监视器线程中的异常

  5. 5

    无法启动 Redis 集群服务器

  6. 6

    Node 服务器的 Systemd 服务无法连接到 MongoDB

  7. 7

    使用 volley 连接到 android 中的服务器时出现内部服务器错误?

  8. 8

    Mongo在首次连接时无法连接到服务器

  9. 9

    无法从安装了Minikube的主机上的docker容器中运行kubectl“连接到服务器127.0.0.1:32768的连接被拒绝”

  10. 10

    无法连接到MongoDB集群

  11. 11

    无法连接到远程mongodb服务器

  12. 12

    MongoDB错误无法连接到服务器

  13. 13

    错误:无法连接到服务器127.0.0.1:27017 MongoDB

  14. 14

    NodeJS无法连接到服务器ECONNREFUSED上的MongoDB

  15. 15

    MongoDB安装后错误,无法连接到服务器

  16. 16

    连接到mongodb服务器时“无效的ns”

  17. 17

    webView:didFailLoadWithError -1004:在Phonegap ios中连接google plus时无法连接到服务器

  18. 18

    使用集群(NDBCluster 或 Galera)时,nodejs 应用程序如何连接到故障转移 MySQL 服务器之一?

  19. 19

    执行Cordova仿真时无法连接到服务器

  20. 20

    无法使用猫鼬连接到Mongodb Atlas

  21. 21

    无法使用 Scala 驱动程序连接到 MongoDB Atlas

  22. 22

    有时无法使用域名连接到ubuntu 14.04 LTS服务器

  23. 23

    未处理的拒绝MongoError:无法连接到MongoDB中的服务器

  24. 24

    使用Node JS连接到Atlas MongoDB时出错

  25. 25

    在 Cloudera 中设置集群时与服务器通信时出错

  26. 26

    14.04中更改了“连接到服务器”选项?无法使用WebDav连接

  27. 27

    Python3:cassandra.cluster.NoHostAvailable :(将来使用execute_async时(“无法使用键空间'test'',['127.0.0.1']连接到任何服务器))

  28. 28

    使用Ionic连接到MongoDB远程服务器

  29. 29

    无法连接到mongodb服务

热门标签

归档