Подключение к кластеру Redis с помощью sentinel на Kubernetes

Я успешно настроил защищенный паролем кластер Redis, используя приведенное здесь руководство:

http://kubernetes.io/v1.1/examples/redis/

Я могу нормально подключиться к дозору, используя redis-cli, но я не могу подключиться к главному / подчиненному Redis, хотя я выставил дозорных.

Я использую Ruby и следующую строку подключения .. Я делаю это неправильно?

SENTINELS = [{host: "104.122.24.897", port: 26379}]

redis = Redis.new(url: "redis://mymaster", sentinels: SENTINELS, :role => :master, password: "longasspassword", timeout: 16)

Я получаю следующее сообщение об ошибке:

Error connecting to Redis on 10.64.7.33:6379 (Redis::TimeoutError) (Redis::CannotConnectError)`

person sambehera    schedule 12.02.2016    source источник
comment
Что странно, ваша ошибка показывает порт по умолчанию, а не порт, который вы указали. Он не слушает вашу конфигурацию должным образом?   -  person tadman    schedule 12.02.2016
comment
Я думаю, что часовые должны просто перейти к мастеру Redis, верно? показываемый порт - это главный порт Redis, я считаю ..   -  person sambehera    schedule 12.02.2016
comment
Хорошая точка зрения. В таком случае, возможно, ваш дозорный неправильно настроен?   -  person tadman    schedule 12.02.2016
comment
Никаких часовых не переправляют. Думайте о них как о службе поиска. Клиент должен поддерживать дозорный поиск.   -  person The Real Bill    schedule 13.02.2016
comment
мой клиент Redis поддерживает часовых - просто не могу понять, как заставить его использовать их   -  person sambehera    schedule 13.02.2016
comment
Я думаю, проблема в том, что дозорный дает локальный IP-адрес 10.64.7.33 .. Я попытался открыть службу redis-master-slave с глобальным IP-адресом и могу подключиться к нему с помощью моего пароля .. но я получаю сообщение об ошибке (error) READONLY You can't write against a read only slave., когда пытаюсь что-то написать. Я тоже не могу подключиться к мастеру через redis sentinel   -  person sambehera    schedule 14.02.2016


Ответы (1)


В конце концов я решил использовать helm (https://helm.sh/) и установил redis-cluster с помощью helm install redis-cluster.

Я могу подключиться к кластеру Redis, используя cluster_ip (не внешний IP-адрес) в kubernetes, и это удовлетворяет моим требованиям безопасности. Redis sentinel работает "из коробки" с таким подходом.

person sambehera    schedule 14.02.2016