gpt4 book ai didi

Kubernetes 和 Gunicorn 上的 Flask 应用程序扩展

转载 作者:行者123 更新时间:2023-12-02 03:55:27 29 4
gpt4 key购买 nike

我们有一个 Flask 应用程序,通过 Gunicorn 使用 eventlet 工作线程提供服务。我们正在将应用程序部署在 kubernetes pod 中,其想法是根据工作负载扩展 pod 数量。

gunicorn 中工作线程数量的建议设置为 2 - 4 x $NUM_CPUS。请参阅docs 。我之前曾在专用物理硬件上部署过服务,这样的计算才有意义。在 4 核机器上,拥有 16 个工作线程听起来不错,我们最终将其增加到 32 个工作线程。

此计算是否仍然适用于使用异步工作线程的 kubernetes pod,特别是:

  1. 单个节点上可以有多个 Pod。
  2. 同一个服务将在多个 Pod 中运行。

我应该如何设置gunicorn worker 的数量?

  1. 将其设置为 -w 1 并让 kubernetes 通过 pod 处理扩展?
  2. 在 kubernetes 节点上将其设置为 2-4 x $NUM_CPU。在一个或多个 Pod 上?
  3. 完全是别的东西?

更新

我们决定采用第一个选项,这是我们当前的方法。将gunicorn作品的数量设置为1,并通过增加pod数量来横向扩展。否则将会有太多的移动部件,而且我们将无法充分利用 Kubernetes 的潜力。

最佳答案

为了更好地了解该问题的原作者截至 2019 年选择的最终解决方案

Set the number of gunicorn works to 1 (-w 1), and scale horizontallyby increasing the number of pods (using Kubernetes HPA).

考虑到 Kubernetes 平台中工作负载相关功能的快速增长,例如,它可能在不久的将来不适用。 Kubernetes 的一些发行版除了 HPA 之外还提出了垂直 Pod 自动扩展(VPA)和多维 Pod 自动扩展(MPA),所以我建议以社区 wiki 帖子的形式继续这个话题。

关于Kubernetes 和 Gunicorn 上的 Flask 应用程序扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56748782/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com