![](https://img-blog.csdnimg.cn/img_convert/1061c71cb1773dac6001cd057cc853dc.png)
从上面图中可以看出,ingress controller 主要用于前端的负载均衡和反向代理,默认使用http的80端口。
什么是Ingress?
Ingress是一个Kubernetes资源,允许您为在Kubernetes上运行的应用程序配置HTTP负载均衡器,由一个或多个服务代表。这种负载均衡器是将这些应用程序交付给Kubernetes集群之外的客户端所必需的。
Ingress资源支持以下功能:
- 基于内容的路由:
- 基于主机的路由。例如,将具有主机头的请求路由
foo.example.com
到一组服务,将主机头路由bar.example.com
到另一个组。 - 基于路径的路由。例如,使用
/serviceA
以服务A开头的URI和具有/serviceB
以服务B 开头的URI的请求来路由请求。
- 基于主机的路由。例如,将具有主机头的请求路由
- 每个主机名的TLS / SSL终止,例如
foo.example.com
。
有关Ingress资源的更多信息,请参阅Ingress用户指南。
什么是Ingress控制器?
Ingress控制器是一个在集群中运行的应用程序,它根据Ingress资源配置HTTP负载均衡器。负载均衡器可以是在群集中运行的软件负载均衡器,也可以是在外部运行的硬件或云负载均衡器。不同的负载平衡器需要不同的Ingress控制器实现。
对于NGINX,Ingress控制器与负载均衡器一起部署在一个容器中。
NGINX入口控制器
NGINX Ingress控制器可与NGINX和NGINX Plus配合使用,并支持标准的Ingress功能 - 基于内容的路由和TLS / SSL终端。
此外,几个NGINX和NGINX Plus功能可通过注释和ConfigMap资源作为Ingress资源的扩展。除HTTP之外,NGINX Ingress控制器还支持负载均衡Websocket,gRPC,TCP和UDP应用程序。有关支持的功能和自定义选项的详细信息,请参阅ConfigMap和Annotations doc。
阅读本文档以了解有关使用NGINX Plus的NGINX Ingress控制器的更多信息。