所以我整个下午都在苦苦挣扎。我完全无法让我的NodeJS应用程序在kubernetes上运行并连接到我的MongoDB Atlas数据库。
在我的应用程序中,我尝试运行
mongoose.connect('mongodb+srv://admin:<password>@<project>.gcp.mongodb.net/project_prod?retryWrites=true&w=majority', { useNewUrlParser: true })
但是我只是收到了错误信息
UnhandledPromiseRejectionWarning: Error: querySrv ETIMEOUT _mongodb._tcp.<project>.gcp.mongodb.net
at QueryReqWrap.onresolve [as oncomplete] (dns.js:196:19)
(node:32) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 17)
我也尝试过设置一个 ExternalName 服务,但无论使用URL还是ExternalName,都导致我无法连接到数据库。
我已在MongoDB Atlas上将我的IP加入白名单,所以我知道这不是问题所在。
它似乎在我的本地机器上可以工作,但在 Kubernetes Pod 中却不能。我做错了什么?