Как стать автором
Обновить

Комментарии 11

Не нужны вам динамические бекенды?

Я, пожалуй, в статье немного неясно описал цель и результат.

Вношу уточнение: решение не найдено (еще) поскольку самописное годится для экспериментов и в качестве инструмента для отладки: там альфа на альфе и сам автор grpc-proxy пишет, что для продакшна не стоит использовать.

Полезная нагрузка статьи в том, что описывается работа с gRPC-отражением чуть подробнее, чем reflection.Register(s).

Динамические в каком смысле? На лету менять прото-определения? Тогда и клиент должен подстраиваться постоянно. И это ничем не лучше, чем зафиксировать версию API и пробросить маршруты в конфиге.

Скорее в смысле что бекенды (сервисы) поднимаются и опускаются, и масштабируются

https://github.com/NginxProxyManager/nginx-proxy-manager это конфиг, когда менеджер смотрит наружу а локальные сервисы остаются за ним. у вас , как я понял , три внешних сервиса, но если можно их связать локально, то этот докер образ будет полезен.🌟

Спасибо, установлю - отпишу результат.

grpc-gateway решит, только это будет конвертер между простым текстовым(json) http/1 и бинарным gRPC поверх http/2.

С tyk все заработало, кроме потоков. Делал по документации.

https://tyk.io/docs/key-concepts/grpc-proxy/#grpc-streaming

Расскажите пожалуйста чем не хватило 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 можно и для реверс прокси и для ингреса использовать.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории