Подключение к ReplicaSet в MongoDB Ops Manager из другой службы в кластере Kubernetes дает MongooseServerSelectionError - PullRequest
0 голосов
/ 11 июля 2020

TL; DR

Попытка подключиться из службы в пространстве имен по умолчанию к службе набора реплик диспетчера операций mongodb в пространстве имен mongodb. Я пробовал использовать все указанные ниже форматы строк подключения. Но соединение закрывается.

  • "mongodb: //mongo-replica-set-0.mongo-replica-set-svc.mongodb.svc .cluster.local: 27017 / user "
  • " mongodb: //mongo-replica-set-0.mongo-replica-set-svc.mongodb.svc .cluster.local: 27017 / user? ReplicaSet = mon go -replica-set "
  • " mongodb: //mongo-replica-set-0.mongo-replica -set-sv c .mongodb.sv c .cluster.local: 27017, mon go -replica-set-1.mon go -replica-set-sv c .mongodb.sv c .cluster.local: 27017, mon go -replica-set-2.mon go -replica-set-sv c .mongodb.sv c .cluster.local: 27017 / user "
  • "mongodb: //mongo-replica-set-0.mongo-replica-set-svc.mongodb.svc.cluster.local: 27017, пн go -replica-set-1.mon go -replica-set-sv c .mongodb.sv c .cluster.local: 27017, mon go -replica-set-2.mon go -replica-set-sv c .mongodb.sv c .cluster.local: 27017 / user? replicaSet = mon go -replica-set "
  • " mongodb: // mon go -реплика-se t-0.mon go -replica-set-sv c .mongodb.sv c .cluster.local: 27017 / user? tls = false & ssl = false "
  • " mongodb: // пн go -replica-set-0.mon go -replica-set-sv c .mongodb.sv c .cluster.local: 27017, пн go -replica-set-1.mon go -replica-set-sv c .mongodb.sv c .cluster.local: 27017, пн go -replica-set-2.mon go -replica-set-sv c .mongodb.sv c .cluster.local: 27017 / user? tls = false & ssl = false "
  • " mongodb + srv: //mongo-replica-set-0.mongo -replica-set-sv c .mongodb.sv c .cluster.local: 27017 /? tls = false & ssl = false "
  • " mongodb: // mon go -replica-set- 0.mon go -replica-set-sv c .mongodb.sv c .cluster.local: 27017 / user? ReplicaSet = rs0 "

Более длинная версия

Я создал развертывание набора реплик в «MongoDB Ops Manager» (пространство имен mongodb). Я пытаюсь подключиться к набору реплик из другой службы в пространстве имен по умолчанию

Набор реплик - mon go -replica-set

Количество узлов - 3

Я пробовал использовать другой формат строки подключения. Но всегда связь закрывается. Я внес в белый список несколько IP-адресов, которые я мог получить от службы.

1.

const MONGO_URI = "mongodb://mongo-replica-set-0.mongo-replica-set-svc.mongodb.svc.cluster.local:27017/user"
    
    const options = {
        useUnifiedTopology: true,
        useNewUrlParser: true,
        useCreateIndex: true,
        keepAlive: true
    };
    
    mongoose.connect(MONGO_URI, options);
    
    
    MongooseServerSelectionError: connection <monitor> to 10.20.1.5:27017 closed
        at NativeConnection.Connection.openUri (/app/node_modules/mongoose/lib/connection.js:830:32)
        at Mongoose.connect (/app/node_modules/mongoose/lib/index.js:335:15)
        at /app/src/index.ts:52:20
        at step (/app/src/index.ts:33:23)
        at Object.next (/app/src/index.ts:14:53)
        at /app/src/index.ts:8:71
        at new Promise (<anonymous>)
        at __awaiter (/app/src/index.ts:4:12)
        at start (/app/src/index.ts:5:15)
        at Object.<anonymous> (/app/src/index.ts:63:1)
        at Module._compile (internal/modules/cjs/loader.js:1201:30)
        at Module._compile (/app/node_modules/source-map-support/source-map-support.js:547:25)
        at Module.m._compile (/tmp/ts-node-dev-hook-19384996922428388.js:60:25)
        at Module._extensions..js (internal/modules/cjs/loader.js:1221:10)
        at require.extensions.<computed> (/tmp/ts-node-dev-hook-19384996922428388.js:62:14)
        at Object.nodeDevHook [as .ts] (/app/node_modules/ts-node-dev/lib/hook.js:61:7) {
      reason: TopologyDescription {
        type: 'Single',
        setName: null,
        maxSetVersion: null,
        maxElectionId: null,
        servers: Map(1) {
          'mongo-replica-set-0.mongo-replica-set-svc.mongodb.svc.cluster.local:27017' => [ServerDescription]
        },
        stale: false,
        compatible: true,
        compatibilityError: null,
        logicalSessionTimeoutMinutes: null,
        heartbeatFrequencyMS: 10000,
        localThresholdMS: 15,
        commonWireVersion: null
      }
    }
const MONGO_URI = "mongodb://mongo-replica-set-0.mongo-replica-set-svc.mongodb.svc.cluster.local:27017/user?replicaSet=mongo-replica-set"
    
    MongooseServerSelectionError: connection <monitor> to 10.20.1.5:27017 closed
        at NativeConnection.Connection.openUri 
        ...
{
      reason: TopologyDescription {
        type: 'ReplicaSetNoPrimary',
        setName: null,
        maxSetVersion: null,
        maxElectionId: null,
        servers: Map(1) {
          'mongo-replica-set-0.mongo-replica-set-svc.mongodb.svc.cluster.local:27017' => [ServerDescription]
        },
        stale: false,
        compatible: true,
        compatibilityError: null,
        logicalSessionTimeoutMinutes: null,
        heartbeatFrequencyMS: 10000,
        localThresholdMS: 15,
        commonWireVersion: null
      }
    }
const MONGO_URI = "mongodb://mongo-replica-set-0.mongo-replica-set-svc.mongodb.svc.cluster.local:27017,mongo-replica-set-1.mongo-replica-set-svc.mongodb.svc.cluster.local:27017,mongo-replica-set-2.mongo-replica-set-svc.mongodb.svc.cluster.local:27017/user"
    
    MongooseServerSelectionError: connection <monitor> to 10.20.1.5:27017 closed
....        
{
      reason: TopologyDescription {
        type: 'ReplicaSetNoPrimary',
        setName: null,
        maxSetVersion: null,
        maxElectionId: null,
        servers: Map(3) {
          'mongo-replica-set-0.mongo-replica-set-svc.mongodb.svc.cluster.local:27017' => [ServerDescription],
          'mongo-replica-set-1.mongo-replica-set-svc.mongodb.svc.cluster.local:27017' => [ServerDescription],
          'mongo-replica-set-2.mongo-replica-set-svc.mongodb.svc.cluster.local:27017' => [ServerDescription]
        },
        stale: false,
        compatible: true,
        compatibilityError: null,
        logicalSessionTimeoutMinutes: null,
        heartbeatFrequencyMS: 10000,
        localThresholdMS: 15,
        commonWireVersion: null
      }
    }
const MONGO_URI = "mongodb://mongo-replica-set-0.mongo-replica-set-svc.mongodb.svc.cluster.local:27017,mongo-replica-set-1.mongo-replica-set-svc.mongodb.svc.cluster.local:27017,mongo-replica-set-2.mongo-replica-set-svc.mongodb.svc.cluster.local:27017/user?replicaSet=mongo-replica-set"

    MongooseServerSelectionError: connection <monitor> to 10.20.1.5:27017 closed
       ...
{
      reason: TopologyDescription {
        type: 'ReplicaSetNoPrimary',
        setName: null,
        maxSetVersion: null,
        maxElectionId: null,
        servers: Map(3) {
          'mongo-replica-set-0.mongo-replica-set-svc.mongodb.svc.cluster.local:27017' => [ServerDescription],
          'mongo-replica-set-1.mongo-replica-set-svc.mongodb.svc.cluster.local:27017' => [ServerDescription],
          'mongo-replica-set-2.mongo-replica-set-svc.mongodb.svc.cluster.local:27017' => [ServerDescription]
        },
        stale: false,
        compatible: true,
        compatibilityError: null,
        logicalSessionTimeoutMinutes: null,
        heartbeatFrequencyMS: 10000,
        localThresholdMS: 15,
        commonWireVersion: null
      }
    }
const MONGO_URI = "mongodb://mongo-replica-set-0.mongo-replica-set-svc.mongodb.svc.cluster.local:27017/user?tls=false&ssl=false"
    
    MongooseServerSelectionError: connection <monitor> to 10.20.1.5:27017 closed
        at NativeConnection.Connection.openUri 
....
{
      reason: TopologyDescription {
        type: 'Single',
        setName: null,
        maxSetVersion: null,
        maxElectionId: null,
        servers: Map(1) {
          'mongo-replica-set-0.mongo-replica-set-svc.mongodb.svc.cluster.local:27017' => [ServerDescription]
        },
        stale: false,
        compatible: true,
        compatibilityError: null,
        logicalSessionTimeoutMinutes: null,
        heartbeatFrequencyMS: 10000,
        localThresholdMS: 15,
        commonWireVersion: null
      }
    }
const MONGO_URI =  "mongodb://mongo-replica-set-0.mongo-replica-set-svc.mongodb.svc.cluster.local:27017,mongo-replica-set-1.mongo-replica-set-svc.mongodb.svc.cluster.local:27017,mongo-replica-set-2.mongo-replica-set-svc.mongodb.svc.cluster.local:27017/user?tls=false&ssl=false"
    
    MongooseServerSelectionError: connection <monitor> to 10.20.1.5:27017 closed
        at NativeConnection.Connection.openUri 
...
 {
      reason: TopologyDescription {
        type: 'ReplicaSetNoPrimary',
        setName: null,
        maxSetVersion: null,
        maxElectionId: null,
        servers: Map(3) {
          'mongo-replica-set-0.mongo-replica-set-svc.mongodb.svc.cluster.local:27017' => [ServerDescription],
          'mongo-replica-set-1.mongo-replica-set-svc.mongodb.svc.cluster.local:27017' => [ServerDescription],
          'mongo-replica-set-2.mongo-replica-set-svc.mongodb.svc.cluster.local:27017' => [ServerDescription]
        },
        stale: false,
        compatible: true,
        compatibilityError: null,
        logicalSessionTimeoutMinutes: null,
        heartbeatFrequencyMS: 10000,
        localThresholdMS: 15,
        commonWireVersion: null
      }
    }

const MONGO_URI =  "mongodb+srv://mongo-replica-set-0.mongo-replica-set-svc.mongodb.svc.cluster.local:27017/?tls=false&ssl=false"
    
    MongoParseError: Ports not accepted with 'mongodb+srv' URIs
        at parseSrvConnectionString (/app/node_modules/mongodb/lib/core/uri_parser.js:50:21)
        at parseConnectionString (/app/node_modules/mongodb/lib/core/uri_parser.js:556:12)
        at connect (/app/node_modules/mongodb/lib/operations/connect.js:277:3)
        at /app/node_modules/mongodb/lib/mongo_client.js:222:5
        at maybePromise (/app/node_modules/mongodb/lib/utils.js:719:3)
        at MongoClient.connect (/app/node_modules/mongodb/lib/mongo_client.js:218:10)
        at /app/node_modules/mongoose/lib/connection.js:716:12
        at new Promise (<anonymous>)
        at NativeConnection.Connection.openUri (/app/node_modules/mongoose/lib/connection.js:709:19)
        at Mongoose.connect (/app/node_modules/mongoose/lib/index.js:335:15)
        at /app/src/index.ts:53:20
        at step (/app/src/index.ts:33:23)
        at Object.next (/app/src/index.ts:14:53)
        at /app/src/index.ts:8:71
        at new Promise (<anonymous>)
        at __awaiter (/app/src/index.ts:4:12)
const MONGO_URI = mongodb://mongo-replica-set-0.mongo-replica-set-svc.mongodb.svc.cluster.local:27017/user?replicaSet=rs0
    
    MongooseServerSelectionError: connection <monitor> to 10.20.1.5:27017 closed
...       
 {
      reason: TopologyDescription {
        type: 'ReplicaSetNoPrimary',
        setName: null,
        maxSetVersion: null,
        maxElectionId: null,
        servers: Map(1) {
          'mongo-replica-set-0.mongo-replica-set-svc.mongodb.svc.cluster.local:27017' => [ServerDescription]
        },
        stale: false,
        compatible: true,
        compatibilityError: null,
        logicalSessionTimeoutMinutes: null,
        heartbeatFrequencyMS: 10000,
        localThresholdMS: 15,
        commonWireVersion: null
      }
    }

Что мне здесь не хватает? Спасибо за любую помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...