Ingress和反向代理有什么区别?

18

目前,我正在学习Kubernetes,并遇到了Ingress对象这个术语。我想知道它们之间是否有差异的列表,因为它们对我来说似乎是同义词。对我来说,NGINX是一个更加功能丰富的入口,因为它允许例如视频和图像压缩、预取和缓存。

另一方面,Ingress似乎通过提供负载均衡、流量路由、TLS/SSL终止与NGINX的反向代理重叠。我所看到的唯一一个Ingress可能具有的东西与NGINX / Envoy RP相比是它是“kubernetes API对象”。

这是否意味着它由两部分组成-接口部分在API和某些实际反向代理之间?也就是说,“入口”只是Kubernetes术语,用于将NGINX RP包装并强制执行Kubernetes' API,还是完全不同类型的服务器?

您能列出它们之间的一些区别吗?

2个回答

21

你的理解是正确的。Ingress有两个部分,一个控制器实现了Kubernetes Ingress API接口,用于自动化和快速配置反向代理,如Nginx或envoy。

另一个部分是反向代理本身,例如Nginx、envoy等。

因此,当你在Kubernetes中部署Ingress设置时,它将在你的Kubernetes集群中部署一个Ingress控制器和一个反向代理。


17

目前有多个供应商实现了IngressController。甚至nginx也有一个。

关于 Kubernetes 中的Ingress资源,您说得对,它只是像我们手动部署的反向代理一样。而IngressController服务则是接收流量的实际反向代理。您创建的 Kubernetes 资源Ingress就像您创建的nginx.conf配置文件一样。您可以通过运行nginx部署,将其包装在LoadBalancer服务中,并通过手动创建nginx.conf文件来表达流量规则,从而创建和运行自己的Ingress。使用Ingress资源而不是自己手动创建是在 Kubernetes 中实现此操作的本地化且更简单的方式。


2
很好的解释。 - Иван Бишевац

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接