Ingress Controller允许通过Yaml编排脚本提供高可用的七层负载均衡、Waf***或者API Gateway,它是Kubernetes集群对外服务的核心组件

本文主要列举了NGINX官方的Controller和K8s官方社区Controller的区别:

1、K8s版本为了考虑到僵尸进程,加上了dumb-init(负责接管僵尸进程)、K8s版本对于容器的理解比Nginx官方版本深入

alt

2、Nginx官方版本为了考虑到location和url的匹配,对于Ingress的抽象进行了加强,提出了VirtualServer和VirtualServerRoute,支持正则匹配/支持subroute/支持多种匹配

alt

3、Nginx官方提供了snippets,但是只支持global级别的add_header

alt

为了改进以上缺点,加入了自定义模版(Nginx.tmpl)配合Custom Annotations一起,可以实现不同的pod加载不同的module

alt

alt

附:安装Nginx Ingress过程

alt