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

杰西

我在多容器Kubernetes窗格中遇到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]首先
    在Pool上连接[MongoError:getaddrinfo ENOTFOUND mongodb mongodb:27017] (/opt/systran/apps-node/enterprise-server/node_modules/mongodb-core/lib/topologies/server.js:336:35)
    在emitOne(13 events.js::116)
    在Pool.emit(事件。 js:211:7)(/opt/systran/apps-node/enterprise-server/node_modules/mongodb-core/lib/connection/pool.js:280:12)
    位于atmitTwo(events.js:317:30)
    。 js:126:13)
    Socket的Connection.emit(events.js:214:7)处。(/opt/systran/apps-node/enterprise-server/node_modules/mongodb-core/lib/connection/connection.js:189:49)
    在emitOne的Object.onceWrapper(events.js:315:30)
    (事件。 js:116:13)出现
    在Socket.emit(events.js:211:7)
    出现
    在_combinedTickCallback(internal / process / next_tick.js:138:11)出现emitErrorNT(internal / streams / destroy.js:64:8)process._tickCallback(内部/进程/next_tick.js:180:9)

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

curl“ http:// localhost:27017”
似乎您正在尝试通过本机驱动程序端口上的HTTP访问MongoDB。

该应用程序旨在在MongoDB中创建数据库,并填充集合。使用docker-compose.yml文件,这组相同的Docker容器可与Docker正常工作。容器是旧版应用程序的一部分(在同一容器中有其他容器),我对其内容没有太多控制。

我已经检查了各种容器的日志。用“ kubectl get pods”检查了所有库存豆荚,并且一切正常。对于CNI使用“法兰绒”,因此请使用以下内容初始化Kubernetes。

kubeadm初始化--pod-network-cidr = 10.244.0.0 / 16
尼克里格

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

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

因此,您需要更改NodeJS应用程序的配置:将连接设置为MongoDBlocalhost:27017而不是mongodb:27017

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Docker容器内部上游连接到Node.js时,Nginx连接被拒绝

Docker容器和Node.js集群

Node / Express应用无法连接到docker mongodb

链接Docker容器:Node.js + MongoDB

无法通过Docker中的node.js连接到MongoDB

无法从我的Node.js应用程序连接到Cassandra Docker容器

当它们在单独的Docker容器中运行时,如何将Node.js应用程序连接到数据库?

Node.js连接到MySQL Docker容器ECONNREFUSED

无法在裸露的Docker容器端口上连接到Node.js检查器

Node.js集群与多个Docker容器

无法通过Node.js连接到Docker内部的Tarantool容器

连接Node Red和MySQL Docker容器

Kubernetes Docker容器中的前端Vue.js应用程序无法连接到后端

Kubernetes node.js容器无法连接到MongoDB Atlas

无法从应用程序容器连接到PostgresDB Docker容器

无法使用Docker-compose使用Node.js连接到mongoDB

无法从Docker容器(node.js客户端)连接到Elasticsearch

使多个Node js dockerized应用程序与mongodb docker通信

如何从Angular Nginx容器连接到Node API docker容器

docker-compose应用程序容器无法连接到mongo容器

使用aws-sdk在Docker容器中运行Node应用

Docker容器Node.js与外部mysql的连接失败

Docker 容器内的 ManageIQ Web 应用程序无法连接到容器外的 Hawkular

运行 spring 应用程序的 Jetty Docker 容器无法连接到在 docker 容器外运行的 mysql

如何使用 docker-composer 运行 node js docker 容器来管理 php 应用程序资产

Nodejs应用程序docker无法连接到mongodb docker容器

能够使用 docker-compose.yml 在容器和 redis 容器中启动 node js 应用程序,但无法访问应用程序

Docker Compose - Redis 容器拒绝连接到 Node 容器

是否可以将非容器化的 Spring Boot 应用程序连接到 MongoDB Docker 容器?