首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Kubernetes和Gunicorn上的烧瓶应用

在Kubernetes和Gunicorn上的烧瓶应用
EN

Stack Overflow用户
提问于 2019-06-25 07:21:28
回答 2查看 5.6K关注 0票数 15

我们有一个酒瓶应用程序,是通过古尼科恩,使用事件工作者。我们将应用程序部署在一个kubernetes吊舱中,根据工作负载的不同,我们可以扩展豆荚的数量。

建议的工人人数设置为2 - 4 x $NUM_CPUS。见文档。我以前在专用物理硬件上部署了服务,在这些硬件上,这样的计算是有意义的。在一台4核心机器上,有16名工人听起来不错,我们最终把它撞到了32名工人。

这种计算是否仍然适用于使用异步工作人员的kubernetes吊舱,特别是如下所示:

  1. 一个节点上可能有多个豆荚。
  2. 相同的服务将在多个荚中运行。

我该如何设置枪手的人数?

  1. 将其设置为-w 1并让kubernetes通过荚处理缩放?
  2. 在kubernetes节点上将其设置为2-4 x $NUM_CPU。单舱还是多舱?
  3. 完全不同的东西?

更新

我们决定采用第一种选择,这是我们目前的做法。将炮眼的数量设置为1,并通过增加荚数来进行水平缩放。否则会有太多的移动部件,加上我们不会充分利用库伯内特斯的潜力。

EN

回答 2

Stack Overflow用户

发布于 2021-03-10 10:59:16

为更好地了解本问题原作者在2019年选定的最终解决方案

将炮眼的数量设置为1 (-w 1),并通过增加荚数(使用Kubernetes HPA)水平缩放。

考虑到Kubernetes平台中工作量相关特性的快速增长,例如除了HPA、垂直Pod自动标度(VPA)和多维Pod自动标度(MPA)之外,Kubernetes的某些分布也可能不适用于未来,因此我建议以社区wiki post的形式继续这一线程。

票数 1
EN

Stack Overflow用户

发布于 2019-06-25 11:08:30

我不是开发人员,这似乎不是一个简单的任务,但是为了您的考虑,请遵循通过优化Gunicorn配置,以获得更好的性能。

此外,在kubernetes中,由于CPU利用率和(Python如何与Gunicorn和Kubernetes进行扩展?),有不同的机制来扩展您的部署,比如HPA。

您也可以使用Pod和容器的资源请求和限制。

根据Gunicorn文档

不要将员工的数量与您希望拥有的客户数量相比较。Gunicorn应该只需要4-12个工作进程来处理每秒数百或数千个请求。Gunicorn依靠操作系统在处理请求时提供所有负载平衡。通常建议使用(2 x $num_cores) + 1作为开始工作的工人数量。虽然不太科学,但公式基于这样一种假设:对于给定的核心,一个工作人员将从套接字读取或写入,而另一个工作人员正在处理请求。

# 更新

根据您的方法,您可以选择不同的解决方案(部署、守护进程)--所有上述语句都可以通过根据将CPU资源分配给容器和Pods处理在kubernetes中实现

  1. 使用带有资源的部署(限制、请求)可以根据硬件限制将应用程序调整为多个节点上的多个荚,但取决于“应用程序加载”,这是不够好的解决方案。

CPU请求和限制与容器相关联,但是将Pod看作具有CPU请求和限制是有用的。Pod的CPU请求是Pod中所有容器的CPU请求的总和。同样,Pod的CPU限制是Pod中所有容器的CPU限制之和。

注意:

CPU资源以CPU单元来度量。一个CPU (以Kubernetes为单位)相当于: f.e。1 GCP核心。

  1. 正如文章中提到的,第二种方法(将应用程序扩展为多个节点)也是很好的选择。在这种情况下,您可以使用f.e.除了在GKE上进行状态设置或部署外,还可以使用“集群自动分配器”来实现更可扩展的解决方案,当您试图创建无法在集群内运行的新的吊舱时,您可以获得更多的扩展解决方案。在这种情况下,群集自动分配器会自动添加其他资源。

另一方面,您可以考虑使用其他不同的解决方案,比如脑性,它使您可以创建用户定义的策略,以增加或减小集群中节点池的大小。

GKE的集群自动分频器根据要运行的工作负载的要求自动调整集群大小。启用自动标度后,如果创建了无法运行的新Pods,则GKE会自动向集群中添加一个新节点;相反,如果群集中的一个节点利用率不足,并且可以在其他节点上运行其Pods,则GKE可以删除该节点。

请记住,这个问题非常笼统,没有一个好的答案。您应该根据您的需求、负载、活动、容量、成本来考虑所有的问题.

希望能帮上忙。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56748782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档