Node.js 当我有Kubernetes时,nginx的意义是什么?

Node.js 当我有Kubernetes时,nginx的意义是什么?,node.js,nginx,kubernetes,Node.js,Nginx,Kubernetes,在我阅读Docker/Kubernetes教程时,我注意到很多人将nginx放入了一个pod中 即使在阅读了nginx之后,我也不确定他们在用它做什么。Kubernetes不是为你的应用服务,处理负载平衡之类的事情吗 像Node.js这样的东西不是一个“web服务器”吗?它可以“为静态资产提供服务、进行缓存和TLS/SSL” 因此,使用Kubernetes上的Node.js应用程序,您的应用程序将得到服务、静态资产、缓存(尤其是Redis和负载平衡等),为什么nginx?nginx是类似apac

在我阅读Docker/Kubernetes教程时,我注意到很多人将nginx放入了一个pod中

即使在阅读了nginx之后,我也不确定他们在用它做什么。Kubernetes不是为你的应用服务,处理负载平衡之类的事情吗

像Node.js这样的东西不是一个“web服务器”吗?它可以“为静态资产提供服务、进行缓存和TLS/SSL”


因此,使用Kubernetes上的Node.js应用程序,您的应用程序将得到服务、静态资产、缓存(尤其是Redis和负载平衡等),为什么nginx?nginx是类似apache http服务器或tomcat web服务器的web服务器。与其他Web服务器相比,nginx docker映像的大小较小。下载和启动Web服务器所需的时间更少。这就是为什么每个人都在容器的学习阶段使用它


Kubernetes用于管理容器化应用程序,如(nginx、mysql和tomcat等)。

Kubernetes正在对应用程序的请求进行负载平衡。现在由您决定是直接公开应用程序,还是在应用程序前面使用Web服务器

将Nginx放在它前面将允许您拥有访问日志、错误日志、缓存、服务静态文件等内容。。。在某些情况下,您可能希望直接公开应用程序(在GoLang中构建应用程序时通常会出现这种情况)


因此,Nginx在pod中不是必须的,但它取决于您的架构设计,您是否需要它

人们在pod中运行Nginx实例可能有几个原因。最常见的用例是为静态资产提供服务。为此,Apache或lighttpd也将扮演同样的角色。如果不看教程,我就无法阐明Nginx扮演的角色

既然你提到了“教程”,我怀疑这只是为了提供一个静态页面来说“嘿,我在这里!你已经成功地部署了一些有用的东西。”

要回答您关于k8s处理负载平衡的问题,确实如此。服务对象在相关POD之间执行第3层(即IP层)负载平衡,入口对象执行相同的操作,但在第7层(例如HTTP)。这种负载平衡是在集群范围内进行的


总而言之,教程中的Nginx可能只是为静态资产服务,而k8s负载平衡则是集群范围内的。

Nginx将为您提供Nginx.conf,您可以在其中添加其他设置和规则,如速率限制、身份验证等,这些由您控制。您可以使用aws和其他东西来实现这些功能,但拥有更多的控制权有时会更好

将Nginx放在前面是什么意思?这是否意味着将Nginx用于前端?Nginx是front的意思不同<代码>互联网->Nginx->KBCluster->服务,
互联网KBCluster->Nginx->服务