Как настроить прокси-сервер envoy edge для службы Redis в кубернетах?

Я хочу предоставить доступ к Redis HA-сервису, работающему в кубернетах, клиентам, работающим вне облака. Для этого я пытаюсь настроить envoy, который поддерживает Redis. Я использую посла, который является оболочкой для посланника кубернетов. Читал этот документ для первоначального настраивать. Я новичок в посланнике и кубернетах.

Как я могу настроить посла для работы в качестве прокси для моей службы Redis?

Я предполагаю, что есть где указать адрес службы Redis в прокси. Мне сложно получить эту информацию. Эта страница относится к Прокси-сервер Redis в документации для envoy, но я не слежу за тем, где вносить изменения.

Кроме того, меня интересует только функция пограничного прокси, а не функция прокси-сервера службы envoy для моего варианта использования.


person rainhacker    schedule 20.09.2018    source источник


Ответы (1)


Я бы сосредоточился на вашем первом предложении, а не на ваших собственных выводах, которые следуют ниже.

Вы хотите сделать Redis доступным для публичной сети.
Как вы попали в Envoy, я не понимаю; вам, вероятно, понадобится только служба Kubernetes с типом LoadBalancer.
Это ужасная идея, потому что Redis не аутентифицируется по умолчанию, а соединение осуществляется в виде открытого текста, не говорите, что вас не предупреждали ;-)

Что касается Envoy, конечно, он поддерживает Redis, но Ambassador не имеет к нему никакого отношения, и, если я правильно понимаю ваше требование, это полный перебор, который, кажется, в основном отвлекает вас, а не помогает выполнить работу.

https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address/

person samhain1138    schedule 27.09.2018
comment
Размещать Redis в общедоступной сети - действительно ужасная идея. Но я этого не делаю. Я хочу получить доступ к Redis, работающему в кубернетах, от клиентов, работающих в сети компании, но за пределами k8. Причина, по которой я пробовал прокси, заключается в том, что я запускаю Redis в режиме HA, что означает, что у него есть ведущие, ведомые и часовые. Подчиненные устройства могут обслуживать запросы на чтение. Клиенты за пределами k8 подключаются к дозорной службе в k8, которая предоставляет клиентам внутренний адрес модуля ведущего и ведомых устройств. Эти адреса не могут использоваться клиентами для связи с узлами Redis в k8 .... - person rainhacker; 28.09.2018
comment
.... Здесь на сцену выходит прокси с. Я хочу распределять запросы в циклическом режиме чтения на все узлы Redis. Служба LoadBalancer не может различить, является ли узел Redis в k8 ведущим или ведомым. Таким образом, он не может направить запрос на установку мастеру. Кроме того, позже я узнал, что enovy не поддерживает репликацию Redis, так что я думаю, что это неосуществимый вариант для этого. - person rainhacker; 28.09.2018
comment
@rainhacker, хорошо, тогда забудьте про Envoy (хотя я почти уверен, что ваш вывод неверен). Но вы не знаете, как распределять соединения через установку HA Redis. Очевидно, вы не можете ожидать, что клиенты, подключающиеся к распределенной системе, будут отслеживать все IP-адреса всех ведомых устройств и т. Д. Это просто не работает в реальном мире. Короче говоря: если вы установили redis-ha от Helm, отлично. В противном случае, helm install stable/redis-ha, потому что в противном случае я не могу гарантировать вашу настройку, и я не был бы так уверен в этом (не имелось в виду обид, я бы тоже все испортил) ... - person samhain1138; 29.09.2018
comment
@rainhacker ... Тогда у вас будет сервис под названием <release-name>-redis-ha-sentinel. Подключение к этой службе приведет к балансировке нагрузки ваших подключений, как вы описали, за вычетом ненужной сложности подключения к разным IP-адресам (или напрямую к модулям, плохая идея, что, если модуль умрет и т. Д.?) - person samhain1138; 29.09.2018
comment
Я думаю, вам не хватает понимания того, как работают клиенты Redis. Клиентские библиотеки Redis поддерживают топологию узлов Redis на своей стороне и время от времени обновляют ее. Да, клиенты, подключающиеся к Redis, отслеживают все IP-адреса. ‹Release-name› -redis-ha-sentinel не будет работать, потому что клиенты получат IP-адрес ведущего / ведомого устройства от часовых, работающих внутри K8, через эту службу, которая сообщит IP-адреса основных / ведомых модулей. Эти адреса не могут использоваться для запроса Redis внутри K8 внешними клиентами. - person rainhacker; 02.10.2018
comment
Кроме того, на прошлой неделе я пробовал stable / redis-ha. У него есть некоторые серьезные проблемы, такие как состояние гонки при запуске. PR открыт с исправлениями, но еще не объединен. Возможно, я смогу решить свою проблему, напрямую запросив ведущую и ведомую службы. Попробую, как только PR будет объединен. - person rainhacker; 02.10.2018