如何为网关聚合模式配置Kubernetes?

时间:2018-11-25 11:40:31

标签: rest kubernetes gateway

我想配置一个网关,将多个单独的请求聚合为this link的单个请求。但是,我的用例允许用户创建其他服务。

用户提交请求:

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

有关nginx自动重新加载的信息,请参见NVIDIA configurations,我们可以利用Kubernetes ConfigMap的优势,步骤如下:

  • 创建一个backend.json配置,该配置由lua在事件init_by_lua*上加载(*是块或文件)
  • 将ConfigMap配置为backend.json,并使用inotify监视ConfigMap更改
  • 提供一个API,该API向Kubernetes ConfigMap API发送请求,以供用户更改配置。因此,nginx网关将自动重新加载

但是,此link声称inotify无法正常工作,因为共享存储是一个重要文件系统

0 个答案:

没有答案