如何在kubernetes中将nginx设置为rest microservice的反向代理?

时间:2018-05-14 11:11:19

标签: docker nginx kubernetes microservices

我有一个休息微服务,并希望将nginx设置为它的反向代理。我对于采用哪种方法感到困惑:

  1. 在运行应用程序代码的每个pod中运行nginx。
  2. 在单独的pod中运行nginx,并将http请求重定向到在单独的pod中运行的应用程序代码。
  3. 有人可以解释哪一个更好

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:3)

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

单独运行nginx将具有以下优势:

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

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

答案 2 :(得分:0)

您需要代理什么?如果要将服务暴露给外界,请查看Ingress / Ingress Controller:https://kubernetes.io/docs/concepts/services-networking/ingress/