Когда я пытаюсь подключиться к Redis изнутри Kubernetes, всегда сбой подключения

У меня есть приложение узла, развернутое внутри кластера Kubernetes, когда приложение пытается подключиться к Redis за пределами Kubernetes, оно выдает следующую ошибку:

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

Я пытался развернуть redis-cli внутри кластера kubernetes, он может получить доступ к сервису redis.


person shawn liu    schedule 04.09.2019    source источник
comment
Предоставьте более подробную информацию, например, какова конфигурация вашего приложения nodejs, в которой вы указываете конечную точку Redis.   -  person mchawre    schedule 04.09.2019
comment
Я не думаю, что это имеет какое-то отношение к k8s или redis. Вероятно, это проблема узла.   -  person suren    schedule 04.09.2019


Ответы (1)


вы должны предоставить Redis как службу в своем кластере

person prisar    schedule 04.09.2019