Методы доступа
Служба кеширования Alauda для Redis OSS предоставляет несколько стратегий подключения для приложений к экземплярам Redis. В этом разделе описывается, как получить соответствующие адреса подключения и установить соединения с экземплярами Redis как в режимах Sentinel, так и в режиме Cluster.
Содержание
Как получить адреса доступа
Экземпляры Redis поддерживают различные методы доступа, разработанные для различных сценариев развертывания. Эти методы доступа соответствуют стандартным протоколам подключения Redis. За полными сведениями обратитесь к официальной документации Redis:
Внутренние адреса доступа к кластеру
Внутренний доступ к кластеру предоставляет возможность подключения внутри сетевой среды Kubernetes. Доступно два варианта подключения:
- Внутренняя маршрутизация на основе DNS: использует механизмы обнаружения служб Kubernetes
- Внутренняя маршрутизация на основе IP: использует прямую адресацию по IP
Оба метода поддерживают подключения к экземплярам Redis, сконфигурированным как в режиме Cluster, так и в режиме Sentinel.
Чтобы получить внутренние адреса доступа: перейдите в Сведения об экземпляре > Метод доступа > Доступ в кластере
Внешние адреса доступа к кластеру
Внешний доступ к кластеру позволяет подключаться извне сетевой среды Kubernetes, например, из приложений, работающих в разных кластерах или внешних системах. Этот метод также может использоваться для доступа внутри кластера, если это разрешено сетевыми политиками.
Поддерживаются два внешних метода доступа:
- NodePort: открывает Redis на статических портах на каждом узле Kubernetes
- LoadBalancer: предоставляет внешний балансировщик нагрузки для маршрутизации трафика к экземплярам Redis
Чтобы получить внешние адреса доступа: перейдите в Сведения об экземпляре > Метод доступа > Доступ снаружи кластера
При использовании доступа NodePort из внешних сетей убедитесь, что ваш межсетевой экран позволяет трафик к соответствующим IP-адресам и диапазонам NodePort. Из-за архитектурных ограничений протоколов Redis Sentinel и Cluster требуется прямое сетевое соединение между клиентскими приложениями и конечными точками NodePort. Проксирование соединений NodePort через дополнительный балансировщик нагрузки не поддерживается.
В средах с несколькими сетевыми интерфейсами Redis Sentinel и Cluster инициализируют адреса узлов, используя интерфейс сети по умолчанию для каждого узла. Поэтому доступ к Redis через не стандартные сетевые интерфейсы в сочетании с открытыми портами не поддерживается. Для развертываний с несколькими сетевыми интерфейсами рекомендуется метод доступа LoadBalancer.
Методы соединения
В следующих разделах описывается, как устанавливать соединения с экземплярами Redis на основе их архитектуры.
Режим Sentinel
В развертываниях в режиме Sentinel все экземпляры Sentinel регистрируют группу мастер-реплика Redis под фиксированным именем mymaster. Клиентским приложениям необходимо использовать это имя при соединении через протокол Sentinel.
За подробными примерами соединений с популярными библиотеками клиентов обратитесь к Доступ к экземплярам (режим Sentinel)
Режим Cluster
В развертываниях в режиме Cluster клиентские приложения первоначально подключаются к любому узлу в кластере, чтобы получить информацию о топологии кластера (распределение слотов). В ходе последующих операций клиенты должны поддерживать прямые соединения с соответствующими подами Redis на основе сопоставления хэш-слотов ключей.
Для оптимальной надежности клиентским приложениям рекомендуется инициализировать соединения, используя адреса всех узлов кластера.
За подробными примерами соединений с популярными библиотеками клиентов обратитесь к Доступ к экземплярам (режим Cluster)