一个包装器,用于使用Twisted运行pythonweb应用程序,这种方式非常适合Kubernetes。
kubernetes-wsgi的Python项目详细描述
库伯内特斯
一个包装器,用于使用Twisted运行pythonweb应用程序,这种方式非常适合Kubernetes。在
这还包括普罗米修斯度量支持。在
快速入门
要安装:
` pip install kubernetes-wsgi `
启动应用程序:
` python -m kubernetes_wsgi myapp 8000 `
其中myapp是包含WSGI应用程序函数的重要模块名。在
为什么是线程?在
pythonwsgi服务器的黄金标准是Gunicorn,它以其高效并发的多进程执行模式而闻名,尽管存在可怕的pythongil(全局解释器锁)。不幸的是,在使用容器时,由于容器通常只期望只有一个进程,因此多进程工作器模型可能很难使用。具体地说,这意味着如果其中一个分叉的工人被OOM击中并死亡,主进程将简单地重新启动它,而不会触发Kubernetes中OOM d Pods的常用度量。类似地,在Kubernetes中,我们有一种不同的方法来处理多进程并发,这是通过部署多个副本实现的。在最简单的版本中,可以使用多个副本,每个副本一次只处理一个请求,但是使用线程池可以提高吞吐量,因为大多数web应用程序在大多数时间都被阻塞在I/O上(通常等待来自数据库或另一个web服务的响应)。在
为什么扭曲?在
Gunicorn本身有一个threadpool模式,但是它使用futuresthreadpool实现,因此使用起来有些困难。Twisted的线程池更有效。这也允许将Prometheus度量作为本机Twisted web处理程序安装,这样即使线程池用尽,它也可以工作,这意味着即使在系统过载期间,度量也可以继续工作。在
- 项目
标签: