Node.js 库伯内特斯的Redis没有';无法连接到节点

Node.js 库伯内特斯的Redis没有';无法连接到节点,node.js,kubernetes,redis,Node.js,Kubernetes,Redis,我试图学习DevOps,但在使用Kubernetes与redis和我的node.js应用程序时遇到了问题 Mynode.js应用程序通过以下代码连接到redis: constredis=require('redis'); const client=redis.createClient(process.env.redis_URL); module.exports=客户端 我的redis.yaml文件带有部署和服务: --- apiVersion:apps/v1#API版本 种类:部署 元数据:

我试图学习DevOps,但在使用Kubernetes与
redis
和我的
node.js
应用程序时遇到了问题

My
node.js
应用程序通过以下代码连接到
redis

constredis=require('redis');
const client=redis.createClient(process.env.redis_URL);
module.exports=客户端
我的
redis.yaml
文件带有
部署
服务

---
apiVersion:apps/v1#API版本
种类:部署
元数据:
名称:redis master#部署的唯一名称
标签:
app:redis#要应用于此部署的标签
规格:
选择器:
匹配标签:#此部署适用于匹配这些标签的吊舱
应用程序:redis
角色:硕士
层:后端
副本:1#在部署中运行单个pod
模板:#此部署将创建的吊舱模板
元数据:
标签:#要应用于此部署中的吊舱的标签
应用程序:redis
角色:硕士
层:后端
规格:#将在吊舱内运行的容器规格。
容器:
-姓名:master
图片:redis
资源:
请求:
中央处理器:100米
内存:100Mi
端口:
-集装箱港口:6379
---        
版本:v1
种类:Kubernetes资源的服务类型
元数据:
名称:redis master#Kubernetes资源的名称
标签:#将应用于此资源的标签
应用程序:redis
角色:硕士
层:后端
规格:
端口:
-端口:6379#将端口6379上的传入连接映射到Pod的目标端口6379
目标港:6379
选择器:#将具有指定标签的任何Pod映射到此服务
应用程序:redis
角色:硕士
层:后端
我的
app.yaml
文件,带有
部署
服务

---
apiVersion:apps/v1
种类:Kubernetes资源的部署类型
元数据:
名称:go redis应用程序#Kubernetes资源的唯一名称
规格:
副本:在任何给定时间运行3个吊舱
选择器:
火柴标签:
app:go redis app#此部署适用于与指定标签匹配的任何吊舱
模板:#此部署将使用此模板中的配置创建一组POD
元数据:
标签:#将应用于此部署中所有吊舱的标签
应用程序:go redis应用程序
规格:
容器:
-名称:go redis应用程序
图片:alsoares59/devops项目:最新
imagePullPolicy:如果不存在
资源:
请求:
中央处理器:100米
内存:100Mi
端口:
-containerPort:8080#应与Go应用程序侦听的端口号匹配
env:#传递到容器的环境变量
-名称:REDIS_URL
值:redis master
-名称:港口
价值:“3000”
---
版本:v1
种类:kubernetes资源的服务类型
元数据:
名称:go redis应用程序服务#资源的唯一名称
规格:
类型:NodePort#通过在每个节点上打开一个端口并将其代理给服务来公开POD。
端口:#在端口9090接收传入的HTTP请求,并将它们转发到目标端口8080
-名称:http
港口:9090
目标港:8080
选择器:
app:go redis app#将标签为'app=go redis app'的任何pod映射到此服务
由于某些原因,在创建这些部署和服务时,我的
节点
应用程序将崩溃,说它无法连接到
redis

[vagrant@centos-minikube k8s]$kubectl日志go-redis-app-6b687c7bd6-6npt7
>快车-redis@1.0.0开始/
>节点src/server.js
redis服务器应位于redis主服务器
服务器侦听端口3000
events.js:292
投掷者;//未处理的“错误”事件
^
错误:连接eNont redis主机
在PipeConnectWrap.afterConnect[as oncomplete](net.js:1146:16)
在以下位置的RedisClient实例上发出了“错误”事件:
在RedisClient.on_错误(/node_modules/redis/index.js:341:14)
在插座上。(/node_modules/redis/index.js:222:14)
在Socket.emit(events.js:315:20)
发射错误(内部/streams/destroy.js:106:8)
在emitErrorCloseNT(内部/streams/destroy.js:74:3)
在处理和拒绝时(内部/process/task_queues.js:80:21){
呃-2,
代码:'enoint',
系统调用:“连接”,
地址:“redis主机”
}
npm错误!代码失效循环
npm错误!错误1
npm错误!快车-redis@1.0.0start:`node src/server.js`
npm错误!退出状态1
npm错误!
npm错误!在快车上失败了-redis@1.0.0开始脚本。
npm错误!这可能不是npm的问题。上面可能还有其他日志输出。
npm错误!此运行的完整日志可在以下位置找到:
npm错误/root/.npm/_logs/2020-12-23T13_39_56_529Z-debug.log
我错过了什么?我知道库伯内特斯应该把
redis master
翻译成
redis
的pod IP地址,但我不知道他是否做得很好。

我自己找到的。 我不得不将redis-client.js更改为:

constredis=require('redis');
log(“redis服务器应该位于”+process.env.redis\uURL)
const client=redis.createClient({
主机:process.env.REDIS_URL,
端口:process.env.REDIS\u端口
});
module.exports=客户端
我自己找到的。 我不得不将redis-client.js更改为:

constredis=require('redis');
log(“redis服务器应该位于”+process.env.redis\uURL)
const client=redis.createClient({
主机:process.env.REDIS_URL,
端口:process.env.REDIS\u端口
});
module.exports=客户端
我想问问你