web*_*ebp 15 multiprocessing gunicorn kubernetes python-multiprocessing
在面向机器的部署中,通常,人们会使用gunicorn启动多个 worker 来处理传入的请求。(是的,worker_class将进一步定义工作进程内的行为)
在 Kubernetes 集群中部署时,我们是否仍然gunicorn(或者确切地说,我们仍然需要多进程部署)吗?
基本上,每个正在运行的容器都是一个进程(在一个容器每个 pod 配置中)。运行在一个服务后面的多个 Pod 已经等同于gunicorn必须提供的服务。换句话说,依靠 Kubernetes 服务而不是gunicorn
是否gunicorn还需要?
是的,一个 Pod 与一个进程并不完全相同(每个 Pod 中伴随容器的一些开销),但除此之外,我们可能会因为没有而错过gunicorn什么?
澄清:是的,仍然需要gunicorn或其他wsgi http服务器来运行 python 应用程序。我的问题实际上是关于multiprocess方面的(如标题中的多进程/gunicor)。
Gunicorn 用于服务 WSGI(Web 服务器网关接口)应用程序,因此它是一个服务器,而不仅仅是多进程编排工具。Kubernetes 是一个帮助管理基础设施的编排工具。它不支持 HTTP,也不了解 WSGI 规范。换句话说,您无法在裸 kubernetes pod 上运行 WSGI 应用程序,您仍然需要 WSGI 服务器(例如 Gunicorn、uWSGI 等)来为应用程序提供服务。
还需要gunicorn吗?
确实不需要。Kubernetes 可以像 Gunicorn 一样使用 HPA或VPA以及集群自动缩放器等其他功能来处理扩展和缩小(pod/容器) 。
事实上你不需要它,它不需要你不能使用gunicorn。您可以在一个 Pod/容器中完美地拥有多个由资源限制控制的进程。请记住,Kubernetes 资源管理器最终将决定容器(在 Pod 中运行)的资源请求和上限。
| 归档时间: |
|
| 查看次数: |
3688 次 |
| 最近记录: |