【问题标题】:How to setup nginx as reverse proxy for rest microservice in kubernetes?如何将nginx设置为kubernetes中rest微服务的反向代理?
【发布时间】:2018-10-24 00:42:06
【问题描述】:

我有一个 rest 微服务,想将 nginx 设置为它的反向代理。我对遵循哪种方法有点困惑:

  1. 在每个运行应用程序代码的 pod 中运行 nginx。
  2. 在单独的 pod 中运行 nginx,并将 http 请求重定向到在单独的 pod 中运行的应用程序代码。

谁能解释一下哪个更好

【问题讨论】:

  • 服务不会有效吗?
  • @YonahDissen 我打算将服务本身用于其余的微服务代码,但我还需要设置一个反向代理 Web 服务器。我可以在每个 pod 中安装 nginx 并将其作为服务公开,或者我可以让专用 pod 运行 nginx 并将 http 请求发送到其余的 kubernetes 服务。

标签: docker nginx kubernetes microservices


【解决方案1】:

你需要代理做什么?当它用于将服务暴露给外界时,请查看 Ingress / Ingress Controller:https://kubernetes.io/docs/concepts/services-networking/ingress/

【讨论】:

    【解决方案2】:

    选项 1 会起作用,但它看起来是一种低效的方式来做你提到的事情。 Nginx 是一个功能强大的服务器(占用空间/运行时资源),并且可以轻松地从一个单独的 pod 为多个应用程序提供服务。 所以我认为选项2是一个更好的选择。

    单独运行nginx会有以下好处:

    • 高效(节省资源和金钱),因为单个 nginx 将能够为多个应用程序提供服务
    • 将来可以使用其他 nginx 功能(例如负载平衡)
    • 可维护性 - 只需一个 pod 即可维护、监控和排除故障(例如升级推出、监控等)等等

    我也有类似的要求。我在一个单独的 pod 上使用了一个 nginx 来为在不同 pod 上运行的多个 (250) 应用程序部署提供服务。我使用 proxy_pass 指令来完成工作。

    【讨论】:

      【解决方案3】:

      在我看来,在单独的 pod 中运行 nginx 是一个更好的选择,因为这样您就可以独立于代理扩展和缩减应用程序。通常,我们使用一个带有代理的容器,很少使用 API。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-11
        • 2018-12-19
        • 1970-01-01
        • 1970-01-01
        • 2020-08-19
        • 2016-07-05
        相关资源
        最近更新 更多