Я подключаю приложение Nodejs, работающее в кластере GCP Kubernetes. Раньше все работало нормально, когда я включал VPC Peering и использовал строку подключения (Private). На панели управления Atlas рекомендуется:
mongodb + srv: // (имя пользователя): (пароль) @ <cluster_name> -pri.m6tkv.gcp.mongodb.net/ <database_name>? retryWrites = true & w = most
Я следовал этому руководству по настройке: https://docs.atlas.mongodb.com/security-vpc-peering/
Я не могу понять, так как мое приложение уже давно работает с этой конфигурацией. Но в один прекрасный день приложение, работающее на модуле в моем кластере GCP, не может подключиться.
Это сообщение об ошибке:
Connected mongodb failed MongoNetworkError: failed to connect to server [<cluster_name>-00-00-pri.m6tkv.gcp.mongodb.net:27017] on first connect [MongoNetworkError: connection timed out
at connectionFailureError (/app/node_modules/mongoose/node_modules/mongodb/lib/core/connection/connect.js:406:14)
at TLSSocket.<anonymous> (/app/node_modules/mongoose/node_modules/mongodb/lib/core/connection/connect.js:294:16)
at Object.onceWrapper (events.js:299:28)
at TLSSocket.emit (events.js:210:5)
at TLSSocket.Socket._onTimeout (net.js:469:8)
at listOnTimeout (internal/timers.js:531:17)
at processTimers (internal/timers.js:475:7) {name: 'MongoNetworkError' }] at Pool.<anonymous> (/app/node_modules/mongoose/node_modules/mongodb/lib/core/topologies/server.js:438:11)
at Pool.emit (events.js:210:5)
at /app/node_modules/mongoose/node_modules/mongodb/lib/core/connection/pool.js:562:14
at /app/node_modules/mongoose/node_modules/mongodb/lib/core/connection/pool.js:1009:9
at /app/node_modules/mongoose/node_modules/mongodb/lib/core/connection/connect.js:31:7
at callback (/app/node_modules/mongoose/node_modules/mongodb/lib/core/connection/connect.js:264:5)
at TLSSocket.<anonymous> (/app/node_modules/mongoose/node_modules/mongodb/lib/core/connection/connect.js:294:7)
at Object.onceWrapper (events.js:299:28)
at TLSSocket.emit (events.js:210:5)
at TLSSocket.Socket._onTimeout (net.js:469:8)
at listOnTimeout (internal/timers.js:531:17)
at processTimers (internal/timers.js:475:7)
Я вернулся к старому соединению (Стандарт), мое приложение снова работает. Строка подключения:
mongodb + srv: // (имя пользователя): (пароль) @ <cluster_name> .m6tkv.gcp.mongodb.net / <database_name>? retryWrites = true & w = most
Итак, с подключением через VPC Peering возникла проблема, я не смог найти подсказку.