从历史上看,在反向代理后面启动任何WSGI应用程序一直是很好的做法。因此,在我在Kubernetes上启动时,对我来说很自然,以扔一个2个容器吊舱,一个运行Nginx反向代理,另一个运行Django应用程序。通过NGINX入口控制器提供入口时,这只是浪费资源吗?在这种情况下运行其他反向代理有什么好处?
取决于您对流量的控制需求,而且如果您已经配置了在该体系结构上使用的NGINX POD。
我可以建议,如果您的想法是拥有一个良好的反向代理,并具有更多选项控件,以使用与使用Kube-Poxy的默认值不同的Ingress-Controller。一个好的是:
- nginx Ingress Controller
- Haproxy Ingress Controller
但是,您还可以选择使用服务网格,例如,控制器在每个POD上注入特使代理容器,以控制入口流量,还可以将POD的出口流量用于控制如何以及在哪里可以控制也从吊舱外部连接。
在性能方面,所有解决方案均针对大量流量进行了优化,如果您将正确的Livices Probobe和ReadynessProbe设置在部署定义上,则可以通过自动负载平衡进行水平扩展应用程序。
。