如何解决为什么我们要在单独的Nginx容器中部署静态Web应用程序?
我在Internet上找到的所有教程都演示了如何在nginx容器中部署网站/应用程序以及如何设置Ingress来将相关请求代理到该容器。
对我来说似乎有点多余。为什么不将内容放在卷上,将其安装到ingress-nginx-controller并从那里提供静态资产。从性能角度来看似乎更好:没有额外的代理,也没有额外的容器(带有nginx)会消耗计算资源。
解决方法
Ingress资源是一个抽象概念,旨在将HTTP / S请求路由到kubernetes服务。它定义了该功能的有限子集以保持通用性,并可以由许多类型的入口控制器实现。
ingress-nginx只是入口控制器的一种实现,它恰好还可以提供静态内容。 HAProxy,Traefik或AWS lb在天平的另一端。
基于nginx的入口控制器可以添加自定义annotations来支持类似您建议的自定义内容,但是我想您很难在项目中争论这一点。在内部,他们已经为默认后端添加了第二个Nginx实例。
如果一个代理跃点是性能上的关键差异因素,那么在边缘CDN /设备上托管静态内容可能会获得更多好处。另一种选择是不依赖Ingress并将服务直接发布到外界。
,您需要一个容器来运行该应用程序。入口服务仅用于访问Kubernetes集群之外的应用程序。您不能仅将内容保留在一个卷中并将其安装到入口控制器。一个Ingress控制器用于路由多个应用程序的请求。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。