【问题标题】:When I try to connect to Redis from inside Kubernetes, always got connection failed当我尝试从 Kubernetes 内部连接到 Redis 时,总是连接失败
【发布时间】:2020-01-07 00:20:18
【问题描述】:

我的节点应用程序部署在 Kubernetes 集群中,当应用程序尝试从 Kubernetes 外部连接到 Redis 时,它会抛出以下错误:

2019-09-04T06:21:55.320Z ioredis:redis status[101.37.199.xx:6379]: connecting -> connect
2019-09-04T06:21:55.321Z ioredis:redis write command[101.37.199.xx:6379]: 32 -> auth([ 'xxxxxx' ])
2019-09-04T06:21:55.321Z ioredis:redis write command[101.37.199.xx:6379]: 32 -> select([ '32' ])
2019-09-04T06:21:55.321Z ioredis:connection error: Error: write EPIPE
    at afterWriteDispatched (internal/stream_base_commons.js:146:25)
    at writeGeneric (internal/stream_base_commons.js:137:3)
    at Socket._writeGeneric (net.js:698:11)
    at Socket._write (net.js:710:8)
    at doWrite (_stream_writable.js:417:12)
    at writeOrBuffer (_stream_writable.js:401:5)
    at Socket.Writable.write (_stream_writable.js:301:11)
    at Redis.sendCommand (/app/node_modules/ioredis/built/redis/index.js:601:33)
    at Redis.select (/app/node_modules/ioredis/built/commander.js:124:21)
    at Socket.<anonymous> (/app/node_modules/ioredis/built/redis/event_handler.js:32:18) {
  errno: 'EPIPE',
  code: 'EPIPE',
  syscall: 'write'
}
[ioredis] Unhandled error event: Error: write EPIPE
    at afterWriteDispatched (internal/stream_base_commons.js:146:25)
    at writeGeneric (internal/stream_base_commons.js:137:3)
    at Socket._writeGeneric (net.js:698:11)
    at Socket._write (net.js:710:8)
    at doWrite (_stream_writable.js:417:12)
    at writeOrBuffer (_stream_writable.js:401:5)
    at Socket.Writable.write (_stream_writable.js:301:11)
    at Redis.sendCommand (/app/node_modules/ioredis/built/redis/index.js:601:33)
    at Redis.select (/app/node_modules/ioredis/built/commander.js:124:21)
    at Socket.<anonymous> enter code here(/app/node_modules/ioredis/built/redis/event_handler.js:32:18)
2019-09-04T06:21:55.324Z ioredis:redis queue command[101.37.199.xx:6379]: 32 -> info([])
2019-09-04T06:21:55.324Z ioredis:redis status[101.37.199.xx:6379]: connect -> close

我尝试在kubernetes集群内部部署redis-cli,可以访问redis服务。

【问题讨论】:

  • 提供更多详细信息,例如指定 redis 端点的 nodejs 应用程序的配置。
  • 我觉得跟k8s或者redis没有关系。这可能是一个节点问题。

标签: node.js kubernetes redis ioredis


【解决方案1】:

您必须在集群中将 redis 作为服务公开

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 2023-01-11
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多