Пользовательская маршрутизация в Istio / Kuberentes - PullRequest
0 голосов
/ 24 мая 2018

Мне интересно, является ли Istio хорошим инструментом для поддержки конкретной ситуации маршрутизации, и если нет (или даже если она есть), какие другие подходы доступны.

  • У меня есть два микросервиса, X и Y, с некоторым количеством реплик для каждого.
  • X отправляет запросы Y.
  • X отправляет запросы как определенный пользователь, скажем "bob".
  • Некоторое подмножество реплик Y (не все!) Может обрабатывать запросы для пользователя «bob».
  • Подмножество Y, которое может обрабатывать запросы к «bob», не является статическим, но изменяется со временем в зависимости отв некотором состоянии, хранящемся в реплике, которая является эфемерной.

Поэтому, когда X отправляет запросы, он должен определить для пользователя, что отправляет запрос ("bob"), какое подмножество Y может это конкретноезапрос будет отправлен на?

В Istio есть примеры правила маршрутизации, связанного с пользователем при просмотре заголовков HTTP.С другой стороны, Y, я хотел бы просто иметь код в Y, который вызывает API k8s для добавления и удаления меток в репликах Pod?

например,

Service-Y.Pod-1.Labels = {
  "user-bob": "true",
  "user-jane": "true",
  ...
}

Неясно, насколько хорошо метки справляются с этим или нужно ли поднимать этот тип маршрутизации до уровня приложений, а не пытаться кодировать его в основном прозрачном слое сервисной сетки.

1 Ответ

0 голосов
/ 24 мая 2018

У вас есть открытый API от K8s.Вы можете создать некоторый код, который добавит метку к модулям, а затем направит этот трафик на ваши модули.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...