Thank you for reading this post, don't forget to subscribe!
Описанное ниже применимо только для Centrifugo, который был установлен с помощью официального Helm Chart
Т.к Sentinel занимается наблюдением за master/slave кластера и при указании порта Sentinel ничего не произойдет. Для подключения к кластеру с Sentinel, необходимо сперва узнать, какая из нод является мастером, только на эту ноду будет возможна запись данных.
Если у нас имеется кластер Redis (конечно же с Sentinel) установленный с помощью 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
Пример:
1 2 3 4 5 6 7 8 |
... # 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-переменные
1 2 3 4 5 |
... env: CENTRIFUGO_REDIS_MASTER_NAME: "master" CENTRIFUGO_REDIS_SENTINELS: "redis:26379" ... |
Где в CENTRIFUGO_REDIS_MASTER_NAME мы указываем «метку» мастера, а CENTRIFUGO_REDIS_SENTINELS указываем подключение к Sentinel