在Kubernetes,我们还需要多进程/ gunicorn吗?

问题描述 投票:1回答:2

在面向机器的部署中,通常,人们会使用gunicorn来启动一些工作人员来处理传入的请求。 (是的,worker_class将进一步定义工人流程中的行为)

在Kubernetes集群中部署时,我们还是gunicorn(或者确切地说,我们还需要多进程部署)吗?

基本上,每个正在运行的容器都是一个进程(在每个容器一个容器配置中)。在服务后面运行的多个pod已经等同于gunicorn所提供的。换句话说,依靠Kubernetes服务而不是gunicorn

还需要gunicorn吗?

是的,一个pod与一个进程不完全相同(伴随容器的每个pod有一些开销),但除此之外,我们可能因为没有gunicorn而错过任何其他内容?

Edited

澄清:是的,仍然需要gunicorn或其他wsgi http服务器来运行python应用程序。我的问题是关于multiprocess方面(作为标题中的多进程/枪手)。

kubernetes multiprocessing gunicorn python-multiprocessing
2个回答
1
投票

Gunicorn用于服务WSGI(Web服务器网关接口)应用程序,因此它是一个服务器而不仅仅是多进程编排工具。 Kubernetes是一个有助于管理基础设施的编排工具。它不会说HTTP,也不了解WSGI规范。换句话说,你不能在裸kubernetes pod上运行WSGI应用程序,你仍然需要一个WSGI服务器liike Gunicorn,uWSGI等来为应用程序提供服务。


0
投票

还需要枪炮吗?

真的不需要它。 Kubernetes可以像gunicorn一样使用HPAVPA,与cluster autoscaler等其他东西相结合的方式处理放大和缩小(豆荚/容器)。

事实上,你不需要它,它不需要你不能使用gunicorn。您可以在由resource limits控制的pod /容器中完美地拥有多个进程。请记住,Kubernetes资源管理器最终将决定资源的请求和上限对于您的容器(在pod中运行)。

© www.soinside.com 2019 - 2024. All rights reserved.