gpt4 book ai didi

mongodb - Node.js 应用程序无法使用 Kubernetes 连接到 MongoDB Docker 容器

转载 作者:行者123 更新时间:2023-12-02 12:06:52 24 4
gpt4 key购买 nike

我在多容器 Kubernetes pod 中遇到 ENOTFOUND 错误。 MongoDB 位于一个 Docker 容器中并且似乎完全可以运行,而 Node.js 应用程序位于另一个容器中(请参阅下面的错误)。

/opt/systran/apps-node/enterprise-server/node_modules/mongoose/node_modules/mongodb/lib/replset.js:365
process.nextTick(function() { throw err; })
^
MongoError:第一次连接时无法连接到服务器 [mongodb:27017] [MongoError: getaddrinfo ENOTFOUND mongodb mongodb:27017]
在游泳池。 (/opt/systran/apps-node/enterprise-server/node_modules/mongodb-core/lib/topologies/server.js:336:35)
在 emitOne (events.js:116:13)
在 Pool.emit (events.js:211:7)
在连接处。 (/opt/systran/apps-node/enterprise-server/node_modules/mongodb-core/lib/connection/pool.js:280:12)
在 Object.onceWrapper (events.js:317:30)
在 emitTwo (events.js:126:13)
在 Connection.emit (events.js:214:7)
在套接字。 (/opt/systran/apps-node/enterprise-server/node_modules/mongodb-core/lib/connection/connection.js:189:49)
在 Object.onceWrapper (events.js:315:30)
在 emitOne (events.js:116:13)
在 Socket.emit (events.js:211:7)
在 emitErrorNT (internal/streams/destroy.js:64:8)
在 _combinedTickCallback (内部/进程/next_tick.js:138:11)
在 process._tickCallback (internal/process/next_tick.js:180:9)

在应用程序容器中我可以执行以下操作,因此似乎知道 MongoDB 在端口 27017 上可用。

curl “http://localhost:27017”
看起来您正试图在 native 驱动程序端口上通过 HTTP 访问 MongoDB。

该应用程序旨在在 MongoDB 中创建数据库并填充集合。使用 docker-compose.yml 文件,这组 Docker 容器可以很好地与 Docker 配合使用。这些容器是遗留应用程序的一部分(同一个 pod 中还有其他容器),我对它们的内容没有太多控制权。

我检查了各种容器的日志。已使用“kubectl get pods”查看了所有库存 pod,并且一切正常。对 CNI 使用“flannel”,因此使用以下内容来初始化 Kubernetes。

kubeadm 初始化 --pod-network-cidr=10.244.0.0/16

最佳答案

根据错误输出,您的 NodeJS 应用程序尝试通过 mongodb:27017 连接到 MongoDB 数据库。 .

由于 NodeJS 应用程序和 MongoDB 数据库都是同一个 pod 的容器,因此 NodeJS 应用程序应该通过 localhost:27017 连接到 MongoDB 数据库。相反,因为 pod 中的容器共享存储/网络资源。

因此,您需要更改 NodeJS 应用程序的配置:设置与 MongoDB 的连接 localhost:27017而不是 mongodb:27017 .

关于mongodb - Node.js 应用程序无法使用 Kubernetes 连接到 MongoDB Docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51433024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com