首页 > 解决方案 > 我应该在每个 Kubernetes pod 中运行 nginx 吗?

问题描述

我有一个有 20 个工作节点的 Kubernetes 集群。我的主要应用程序是一个 Flask API,每分钟提供数千个 android/ios 请求。我的 Kubernetes 部署的配置方式是每个 pod 有 2 个容器——flask/python 服务器和 nginx。烧瓶应用程序在 gunicorn 上运行,带有 meinheld 工人(每个 pod 20 名工人)。

我的问题是:我是否需要在烧瓶应用程序旁边的每个 pod 中运行 nginx,还是可以只使用主 nginx 入口控制器作为代理缓冲层?

注意:我使用 ELB 将外部流量路由到我的内部 k8s 集群。

标签: nginxkubernetesgunicorn

解决方案


在每个 pod 上都有一个代理并不奇怪,事实上,istio 会为每个 pod 注入一个 envoy 容器作为代理来控制进出流量并获得更准确的指标。

查看文档https://istio.io/

但是,如果您现在不想管理服务网格,您可以避免使用 nginx 并直接使用服务上的端口映射作为入口定义。


推荐阅读