使用 nginx pod 作为反向代理与 nginx 入口之间的区别

Difference between using nginx pod as reverser proxy vs nginx ingress

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

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

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

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

如果您使用 Kubernetes ingress,集群会为您维护 Nginx 配置,并根据可按服务部署的 Ingress 对象重新生成配置。如果您不是 Nginx 专家,这更容易维护,并且您可以在不接触集中配置的情况下添加和删除服务。

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