【问题标题】:How to scale web application in kubernetes?如何在 Kubernetes 中扩展 Web 应用程序?
【发布时间】:2021-12-23 15:59:10
【问题描述】:

让我们考虑一个通过 Nginx 在 uWSGI 下部署的 python web 应用程序。

HTTP 客户端 ↔ Nginx ↔ Socket/HTTP ↔ uWSGI (web server) ↔ webapp

其中 nginx 用作反向代理/负载均衡器。

如何在 Kubernetes 中扩展此类应用程序? 我想到了几个选项:

  1. 在单个 pod 中部署 nginx 和 uWSGI。简单的方法。
  2. 在单个容器中部署 nginx + uWSGI?违反“每个容器一个进程”的原则。
  3. 仅部署一个 uWSGI(通过 HTTP)。省略nginx的使用。

或者还有其他解决方案,涉及到 nginx 入口/负载均衡器服务?

【问题讨论】:

  • 如何使用任何类型的入口控制器或仅使用服务?

标签: nginx kubernetes


【解决方案1】:

视情况而定。

我看到两种情况:

  1. 使用入口

    在这种情况下,Pod 中不需要有 nginx 服务器,但它可以是 ingress-nginx,它将平衡 kubernetes 集群之间的流量。你可以在this comment on GitHub issue 中找到一个很好的例子。

  2. 不使用入口。

    在这种情况下,我会选择option 1 - Deploy nginx and uWSGI in a single pod. Simple approach.。通过这种方式,您可以轻松地扩展/扩展您的应用程序,并且没有任何复杂/不必要的依赖项。

如果您不熟悉what ingress is,请查找kubernetes documentation - ingress

【讨论】:

    猜你喜欢
    • 2021-12-18
    • 2016-11-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 2019-05-19
    相关资源
    最近更新 更多