Проблемы с Redis Cluster в Docker

Я использую кластер Redis из 48 экземпляров, распределенных на 6 физических серверах. Эти экземпляры Redis работают в контейнерах докеров.

Кластер спроектирован следующим образом:

1) 4 контейнера Docker для Redis Master работают на каждом из этих 4 серверов (M1, M2, M3, M4).

2) У каждого мастера есть 2 подчиненных. Это означает, что 16 Docker-контейнеров для Redis Slave работают на остальных двух серверах (S1, S2).

Я столкнулся с проблемой при получении ключа. Например, я получаю ключ, который хранится на M1D2, используя redis-cli из M1D1, это дает мне следующую ошибку.

# echo "get a " | redis-cli -c -h 172.16.84.181 -p 6351

-> Redirected to slot [3902] located at 172.17.0.1:6350

Could not connect to Redis at 172.17.0.1:6350: Connection refused

Could not connect to Redis at 172.17.0.1:6350: Connection refused

Я совершенно уверен, что эта проблема связана с Docker. Можно ли заставить Docker использовать базовый IP-адрес eth0 для redis вместо использования IP-адреса docker0?

0
задан 5 May 2016 в 14:57
2 ответа

Он использует сам базовый IP-адрес eth0, чтобы быть доступным извне. Поэтому, возможно, измените конфигурацию redis, чтобы использовать IP-адрес экземпляра redis в качестве IP-адреса базового хоста eth0 и переадресации порта на докере

0
ответ дан 5 December 2019 в 18:46

Взгляните на эти две ссылки

https://github.com/developersworkspace/Docker-Samples/tree /master/redis

https://github.com/developersworkspace/Docker-Samples/tree/master/redis-cluster

Это должно решить ваши проблемы.

-1
ответ дан 5 December 2019 в 18:46

Теги

Похожие вопросы