这是否必须在Kubernetes pod中拥有多个进程/线程?

Afs*_*ani 11 django uwsgi kubernetes

我在Kubernetes集群中托管的容器中使用uwsgi.UWSGI支持传统的主/从架构,为应用程序提供更好的可用性,但我的问题是,我是否应该使用此功能?

换句话说,当我需要更多进程来处理和计算请求时,我是否应该增加集群中的pod数量,还是应该仍然使用UWSGI的主/从模式来响应请求?

sfg*_*ups 5

在Kubernetes中建议的管理此方法的方法是根据工作负载要求增加POD的数量。


nck*_*ner 5

如果您的应用程序在服务每个HTTP请求时阻塞(例如Django),请注意有足够的线程/进程/容器来维护可用性。如果您使用的是水平Pod自动缩放器,则会有一些Pod启动时间,而我发现在流量较高的应用程序中,uwsgi和每个Pod(同一容器)中的应用程序以及一个单独的Nginx Pod的可用性要好得多在所有uwsgi工作者忙时进行反向代理并请求合并。

YMMV,但归根结底,可用性比坚持每个pod经验法则的单个流程更为重要。只需了解不利之处,例如减少同一容器内各进程之间的隔离即可。日志是每个容器可用的,因此,使用内置的kubectl日志功能,不会在同一容器中的任何事物之间实现隔离。