Описанное ниже применимо только для Centrifugo, который был установлен с помощью официального Helm Chart
Т.к Sentinel занимается наблюдением за master/slave кластера и при указании порта Sentinel ничего не произойдет. Для подключения к кластеру с Sentinel, необходимо сперва узнать, какая из нод является мастером, только на эту ноду будет возможна запись данных.
Если у нас имеется кластер Redis (конечно же с Sentinel) установленный с помощью Helm Chart от bitnami
Сперва нам понадобится запустить redis-client и подключиться к Sentinel
Запустим его на одном из pod’ов и подключимся именно к порту Sentinel
kubectl exec -ti -n mynamespace redis-node-0 -- bash
redis-cli -h redis -p 26379
Далее необходимо выполнить команду `info` для получения имени master’a
Пример:
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=master,status=ok,address=redis-node-2.redis-headless.mynamespace.svc.cluster.local:6379,slaves=2,sentinels=3
Собственно нас интересует `master0:name=master`
Далее в values Helm Chart’a укажем следующие ENV-переменные
env:
CENTRIFUGO_REDIS_MASTER_NAME: "master"
CENTRIFUGO_REDIS_SENTINELS: "redis:26379"
Где в CENTRIFUGO_REDIS_MASTER_NAME мы указываем «метку» мастера, а CENTRIFUGO_REDIS_SENTINELS указываем подключение к Sentinel
Be First to Comment