【发布时间】:2021-03-12 16:15:52
【问题描述】:
我在 GKE 集群中运行 Mongo、Express、Node、React 应用程序,该集群设置有可抢占式 VM(以节省资金)。我正在使用 mongoose 连接到托管在 Mongo Cloud Atlas 上的 MongoDB。当 pod 首次启动时,一切正常。但是,当我的节点被抢占时,我失去了与我的 mongoDB 实例的连接。然后我必须进入并手动将部署缩小到 0 个副本,然后将其扩大备份并恢复与 mongoDB 的连接。下面是我得到的错误和我的 mongo 连接的代码。这只是使用可抢占实例的预期效果吗?有什么办法可以处理它,比如抢占后自动扩展部署?我正在运行一个 GKE 自动驾驶仪集群,没有任何问题,但这对我来说有点贵。谢谢
mongoose
.connect(process.env.MONGODB_URL, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
})
.then(() => console.log('mongoDB connected...'));
(node: 24) UnhandledPromiseRejectionWarning: Error: querySrv ECONNREFUSED _mongodb._tcp.clusterx.xxxxx.azure.mongodb.net at QueryReqWrap.onresolve (dns.js:203)
【问题讨论】:
-
节点被抢占时POD的状态是什么?
标签: mongodb express kubernetes google-kubernetes-engine