Как настроить kubernetes для шаблона агрегации шлюза? - PullRequest
0 голосов
/ 25 ноября 2018

Я хотел бы настроить шлюз для объединения нескольких отдельных запросов в один запрос как эта ссылка .Однако мой вариант использования позволяет пользователю создавать дополнительные сервисы.

Пользователь отправляет запрос:

POST http://gatway_ip/cards/foo

Диаграмма выглядит следующим образом:

   +------------------+    +-----------------+     +-----------------+
   |                  |    |                 |     |                 |
   |   transactions   |    |   User info     |     |   dynamic info  |
   |                  |    |                 |     |                 |
   +------------------+    +-----------------+     +-----------------+
          |                         |                       |
          +----------+     +--------+                       |
                     |     |                                |
                     |     |                                |
                +----v-----v---+                            |
                |              |                            |
                |  /cards/foo  <----------------------------+
                |              |
                +--------------+
                       |
                       |
                       |
                       +
                     User

Пользователь может запускать / останавливать динамическую информацию по требованию.Шлюз объединяет ответ JSON от различных служб.Например:

транзакции:

{"amount": 4000}

информация о пользователе:

{ "name": "foo" }

динамическая информация:

{ "wifeName": "bar" }

Ответы шлюза:

{
    "amount": 4000,
    "name": "foo",
    "wifeName": "bar"
}

Насколько я знаю:

  • Пример решения на веб-сайте Microsoft определяет фиксированный бэкэнд.
  • Вход Kubernetes разрешает маршрутизацию только для входящих запросов.

Есть ли какое-либо решение для агрегации шлюза с динамическим внутренним сервером?

Отредактировано

Обход 1

См. Конфигурации NVIDIA для автоматической перезагрузки nginx,мы можем воспользоваться преимуществами Kubernetes ConfigMap, выполнив следующие шаги:

  • Создайте backend.json конфигурацию, которая загружается с помощью lua для события init_by_lua* (* является блоком или файлом)
  • Настройте ConfigMap на backend.json и используйте inotify для мониторинга изменений ConfigMap
  • Предоставляет API, который отправляет запрос в Kubernetes ConfigMap API для пользователя на изменение конфигурации.Таким образом, шлюз nginx автоматически перезагрузит

Однако, эта ссылка утверждает, что inotify не будет работать, поскольку общее хранилище было файловой системой fuse

...