首页 > 解决方案 > 使用 nginx pod 作为反向代理与 nginx 入口之间的区别

问题描述

所以如果我有 10 个服务需要暴露给外界并使用基于路径的路由来连接不同的服务,我可以创建一个 Nginx pod 和服务类型LoadBalancer

然后我可以创建 Nginx 配置,并可以根据 URL 路径重定向到不同的服务。在探索了更多之后,我开始了解 Nginx ingress 也可以做到这一点。这两种方法有什么区别,哪种方法更好?

标签: nginxkuberneteskubernetes-ingress

解决方案


在这两种情况下,您都在集群内的 Kubernetes pod 中运行 Nginx 反向代理。它们之间没有太大的技术差异。

如果您自己运行代理,您可以完全控制 Nginx 版本和配置,如果您有非常特殊的需求并且您已经是 Nginx 专家,这可能是可取的。最显着的缺点是,如果您添加或更改服务,则需要手动重新配置和重新部署中央代理。

如果您使用 Kubernetes ingress,集群会为您维护 Nginx 配置,并根据可以为每个服务部署的 Ingress 对象重新生成它。如果您不是 Nginx 专家,这更容易维护,并且您可以添加和删除服务而无需触及集中配置。

Kubernetes 入口系统原则上也可以插入备用代理;它不仅限于 Nginx。但是,它的可用配置有些有限,我看过的其他一些代理建议使用他们自己的自定义 Kubernetes 资源而不是标准的 Ingress 对象。


推荐阅读