Comments 11
Не нужны вам динамические бекенды?
Я, пожалуй, в статье немного неясно описал цель и результат.
Вношу уточнение: решение не найдено (еще) поскольку самописное годится для экспериментов и в качестве инструмента для отладки: там альфа на альфе и сам автор grpc-proxy пишет, что для продакшна не стоит использовать.
Полезная нагрузка статьи в том, что описывается работа с gRPC-отражением чуть подробнее, чем reflection.Register(s).
Динамические в каком смысле? На лету менять прото-определения? Тогда и клиент должен подстраиваться постоянно. И это ничем не лучше, чем зафиксировать версию API и пробросить маршруты в конфиге.
https://github.com/NginxProxyManager/nginx-proxy-manager это конфиг, когда менеджер смотрит наружу а локальные сервисы остаются за ним. у вас , как я понял , три внешних сервиса, но если можно их связать локально, то этот докер образ будет полезен.?
А такие варианты не решат вопрос?
Расскажите пожалуйста чем не хватило envoy и где были с ним затыки. У меня было ощущение что у них одна из фич была трансляция grpc over http/1.1 в нормальный grpc (которая grpc-web) и, соответственно, в качестве более простого grpc gateway должно тем более работать. Но так как сам не пробовал -- интересно что там.
Да вот без внятного примера непонятно было как подступить.
Пример нашелся под боком:
https://github.com/mwitkow/grpc-proxy/issues/46#issuecomment-761980790
Ну а дальше - глаза боятся, руки делают =)
Это для gRPC <-> gRPC. Работает, в том числе и потоковая передача.
Единственный ньюанс - envoy модифицирует заголовки.
Например если в исходном запросе несколько одинаковых ключей.
было:
header1: value1
header1: value2
header1: value3
станет:
header1: value1, value2, value3
Пока настроил без TLS, дальше попробую прикрутить.
С Траефик все работает, мы уже года полтора пользуемся. В целом: K8s кластер с Траефик в качестве IngressController. Траефик также занимается https termination. Т.е. в Траефик приходит https, а он уже раздает http. Если нужен https внутри кластера, наверное надо интегрировать сервис меш. Istio, например. Возможно Istio можно и для реверс прокси и для ингреса использовать.
С gRPC API прекрасно работает Kong API Gateway
В поисках gRPC-шлюза