为Kubernetes运行Python Web应用而设计的包装器,使用Twisted的方式,可以很好地适用于Kubernetes。
项目描述
# Kubernetes_WSGI
为Kubernetes运行Python Web应用而设计的包装器,使用Twisted的方式,可以很好地适用于Kubernetes。
这还包括Prometheus指标支持。
## 快速入门
安装
` pip install kubernetes-wsgi `
启动您的应用程序
` python -m kubernetes_wsgi myapp --port 8000 `
其中 myapp 是包含您的WSGI应用函数的可导入模块名称。
## 为什么使用线程?
Python WSGI服务器的黄金标准是Gunicorn,以其多进程执行模式而闻名,即使在令人恐惧的Python GIL(全局解释器锁)的情况下也能实现高效的并发。不幸的是,当与容器一起工作时,多进程工作模式可能会很难处理,因为容器通常只期望有单个进程。具体来说,这意味着如果其中一个分叉的工作进程被OOM(内存不足)并杀死,主进程将简单地重新启动它,而不会触发Kubernetes中OOM’d Pods的通常指标。同样,我们也在Kubernetes中有另一种处理多进程并发的方法,即通过具有许多副本的Deployment。在最简单的情况下,我们可以使用多个副本,每个副本一次处理一个请求,但使用线程池可以通过利用大多数Web应用大部分时间都阻塞在I/O上(通常等待数据库或其他Web服务的响应)的事实来提高吞吐量。
## 为什么选择Twisted?
Gunicorn 本身确实有线程池模式,但与使用 future ThreadPool 实现的线程池相比,使用起来有些不便。Twisted 的线程池效率更高。这还允许将 Prometheus 度量标准作为原生 Twisted 网络处理程序安装,即使在线程池耗尽的情况下也能正常工作,这意味着即使在系统过载的情况下,您的度量标准仍然可以正常工作。
项目详情
下载文件
下载适用于您的平台文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分布
构建分布
kubernetes_wsgi-1.2.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0576eaa9a7634fb8bab060571787e74a76fb7f61c56bc6f98f42453a9a7d45ee |
|
MD5 | c0395b43b78a2b6f400852f25ce79a02 |
|
BLAKE2b-256 | 2fe959c46ddaf8144334e81657fb36b0df330416b1a74e4b90c8c73e79e95f92 |
kubernetes_wsgi-1.2-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9c0254524e3e9d655aba0d403f8453e5f0660d3283ae81a299433f43c99faffd |
|
MD5 | 9cf86d3747de44a16d5f941999c0f5dc |
|
BLAKE2b-256 | d533ab2fbf8552a46609a7cfbe56e23225e1b58816a5e0eafe0cec99ff330c90 |