本文介绍Nginx Ingress Controller组件信息、使用说明和变更记录。

组件介绍

Ingress基本概念

在Kubernetes集群中,Ingress作为集群内服务对外暴露的访问接入点,其几乎承载着集群内服务访问的所有流量。Ingress是Kubernetes中的一个资源对象,用来管理集群外部访问集群内部服务的方式。您可以通过Ingress资源来配置不同的转发规则,从而达到根据不同的规则设置访问集群内不同的Service所对应的后端Pod。

Nginx Ingress Controller工作原理

为了使得Nginx Ingress资源正常工作,集群中必须要有个Nginx Ingress Controller来解析Nginx Ingress的转发规则。Nginx Ingress Controller收到请求,匹配Nginx Ingress转发规则转发到后端Service所对应的Pod,由Pod处理请求。Kubernetes中Service、Nginx Ingress与Nginx Ingress Controller有着以下关系:
  • Service是后端真实服务的抽象,一个Service可以代表多个相同的后端服务。
  • Nginx Ingress是反向代理规则,用来规定HTTP/HTTPS请求应该被转发到哪个Service所对应的Pod上。例如根据请求中不同的Host和URL路径,让请求落到不同Service所对应的Pod上。
  • Nginx Ingress Controller是一个反向代理程序,负责解析Nginx Ingress的反向代理规则。如果Nginx Ingress有增删改的变动,Nginx Ingress Controller会及时更新自己相应的转发规则,当Nginx Ingress Controller收到请求后就会根据这些规则将请求转发到对应Service的Pod上。

使用说明

关于Nginx Ingress Controller的使用,请参见通过Nginx Ingress实现灰度发布和蓝绿发布通过Ingress Controller来实现应用的流量复制

变更记录

2022年06月

版本号 镜像地址 变更时间 变更内容 变更影响
v1.2.1-aliyun.1 registry.cn-hangzhou.aliyuncs.com/acs/aliyun-ingress-controller:v1.2.1-aliyun.1 2022年06月28日
  • 删除Nginx中的aliasroot指令,减少安全风险。
  • 修复若干稳定性问题。
建议在业务低峰期升级,变更过程中可能会导致已经建立的连接发生瞬断。

2022年05月

版本号 镜像地址 变更时间 变更内容 变更影响
v1.2.0-aliyun.1 registry.cn-hangzhou.aliyuncs.com/acs/aliyun-ingress-controller:v1.2.0-aliyun.1 2022年05月10日
  • 添加并默认开启Ingress对象深度检测功能,阻止包含敏感字段的Ingress的配置写入。该功能修复了CVE-2021-25745问题。
  • 修复若干稳定性问题。
建议在业务低峰期升级,变更过程中可能会导致已经建立的连接发生瞬断。

2022年04月

版本号 镜像地址 变更时间 变更内容 变更影响
v0.44.0.12-27ae67262-aliyun registry.cn-hangzhou.aliyuncs.com/acs/aliyun-ingress-controller:v0.44.0.12-27ae67262-aliyun 2022年04月29日
  • 优化调度亲和性配置,允许集群所有节点为弹性伸缩节点。
  • 修复启用AHAS Sentinel功能时,已知的安全漏洞问题。
  • 修复若干基础镜像漏洞。
建议在业务低峰期升级,变更过程中可能会导致已经建立的连接发生瞬断。

2022年03月

版本号 镜像地址 变更时间 变更内容 变更影响
v1.1.2-aliyun.2 registry.cn-hangzhou.aliyuncs.com/acs/aliyun-ingress-controller:v1.1.2-aliyun.2 2022年03月21日
  • Nginx版本降级为1.19.9,与社区版本保持同步,以增强稳定性。
  • 修复cors-allow-origin配置错误时会导致Controller崩溃的问题。
  • 修复Webhook检查不属于同一IngressClass的Ingress资源时,导致同路径的Ingress资源冲突的问题。
  • 修复使用hostNetwork时,initContainer会更改节点内核参数的问题。
  • 修复CVE-2022-0778CVE-2022-23308
建议在业务低峰期升级,变更过程中可能会导致已经建立的连接发生瞬断。

2022年01月

版本号 镜像地址 变更时间 变更内容 变更影响
v1.1.0-aliyun.2 registry.cn-hangzhou.aliyuncs.com/acs/aliyun-ingress-controller:v1.1.0-aliyun.2 2022年01月12日
  • 升级AHAS Sentinel插件,由Java切换为C++模块,性能大幅优化与提升。
  • 使用Protobuf协议与API Server通信,以提升性能。
建议在业务低峰期升级,变更过程中可能会导致已经建立的连接发生瞬断。

2021年12月

版本号 镜像地址 变更时间 变更内容 变更影响
v1.1.0-aliyun.1 registry.cn-hangzhou.aliyuncs.com/acs/aliyun-ingress-controller:v1.1.0-aliyun.1 2021年12月17日
  • 1.X.X版本的Nginx Ingress Controller仅支持v1.20.0及以上的ACK集群,在旧版本集群上请使用0.X.X版本的Nginx Ingress Controller。
  • 使用networking v1 Ingress资源,以支持1.22及以上集群。
  • cors-allow-origin支持配置多个值,并在访问网站时根据Origin自动返回请求。
  • 支持Canary配置session affinity,且切换为默认行为。
  • 支持在没有指定Host的情况下配置Canary。
  • 加快Admission Webhook的执行速度。
  • 修复稳定性。

更多内容,请参见社区Changelog

建议在业务低峰期升级,变更过程中可能会导致已经建立的连接发生瞬断。

2021年10月

版本号 镜像地址 变更时间 变更内容 变更影响
v0.44.0.9-7b9e93e7e-aliyun registry.cn-hangzhou.aliyuncs.com/acs/aliyun-ingress-controller:v0.44.0.9-7b9e93e7e-aliyun 2021年10月28日 建议在业务低峰期升级,变更过程中可能会导致已经建立的连接发生瞬断。

2021年09月

版本号 镜像地址 变更时间 变更内容 变更影响
v0.44.0.5-e66e17ee3-aliyun registry.cn-hangzhou.aliyuncs.com/acs/aliyun-ingress-controller:v0.44.0.5-e66e17ee3-aliyun 2021年09月06日
  • 升级AHAS sentinel插件。
    • 优化插件性能和稳定性。
    • 支持集群流控。
  • 修复CVE-2021-36159漏洞。更多信息,请参见CVE-2021-36159
  • 默认关闭kernel.core_uses_pid内核参数,防止coredump占用大量磁盘空间。
建议在业务低峰期升级,变更过程中可能会导致已经建立的连接发生瞬断。

2021年06月

版本号 镜像地址 变更时间 变更内容 变更影响
v0.44.0.3-8e83e7dc6-aliyun registry.cn-hangzhou.aliyuncs.com/acs/aliyun-ingress-controller:v0.44.0.3-8e83e7dc6-aliyun 2021年06月01日 修复CVE-2021-23017漏洞。更多信息,请参见Updating NGINX for a DNS Resolver Vulnerability (CVE-2021-23017) 建议在业务低峰期升级,变更过程中可能会导致已经建立的连接发生瞬断。

2021年04月

版本号 镜像地址 变更时间 变更内容 变更影响
v0.44.0.2-abf1c6fe4-aliyun registry.cn-hangzhou.aliyuncs.com/acs/aliyun-ingress-controller:v0.44.0.2-abf1c6fe4-aliyun 2021年04月01日 兼容老版本(0.30及之前的版本)log_format中配置的the_real_ip字段。 建议在业务低峰期升级,变更过程中可能会导致已经建立的连接发生瞬断。

2021年03月

版本号 镜像地址 变更时间 变更内容 变更影响
v0.44.0.1-5e842447b-aliyun registry.cn-hangzhou.aliyuncs.com/acs/aliyun-ingress-controller:v0.44.0.1-5e842447b-aliyun 2021年03月08日
  • 默认开启Validating Admission Webhook。更多信息,请参见How the NGINX Ingress controller works
  • 针对service-weight这个注解配置的值做合法性检查。
  • 长连接和短连接性能提升20%~50%。
  • 集成AHAS Sentinel能力。更多信息,请参见使用Nginx-Ingress-sentinel实现流控
  • 支持OCSP stapling。
  • 升级LuaJIT到2.1.0版本。
  • 升级Nginx到1.19.6版本。
  • 升级Alpine镜像到3.13版本。
  • 修复OpenSSL CVE。
  • 默认启用TLS 1.3版本。
    说明 HTTPS默认只支持TLS 1.2和TLS 1.3版本。如果需要支持TLS 1.0和TLS 1.1版本,请参见Ingress支持哪些SSL/TLS版本?
  • 要求Kubernetes版本为v1.16及以上。
  • 同步更新到社区0.44.0版本。更多信息,请参见社区Changelog
建议在业务低峰期升级,变更过程中可能会导致已经建立的连接发生瞬断。

2020年04月

版本号 镜像地址 变更时间 变更内容 变更影响
v0.30.0.1-5f89cb606-aliyun registry.cn-hangzhou.aliyuncs.com/acs/aliyun-ingress-controller:v0.30.0.1-5f89cb606-aliyun 2020年04月02日
  • 新增FastCGI Backend支持。
  • 默认启用Dynamic SSL Cert Update模式。
  • 新增流量Mirror配置支持。
  • 升级Nginx版本到1.17.8,OpenResty版本到1.15.8,更新基础镜像为Alpine。
  • 新增Ingress Validating Webhook支持。
  • 修复CVE-2018-16843、CVE-2018-16844、CVE-2019-9511、CVE-2019-9513和CVE-2019-9516漏洞。
  • 重大更新如下:
    • lua-resty-waf、session-cookie-hash、force-namespace-isolation等配置被废弃。
    • x-forwarded-prefix类型从boolean转成string类型。
    • log-format中的the_real_ip变量在下个版本将被废弃,统一采用remote_addr替代。
  • 同步更新到社区0.30.0版本,更多详细变更记录请参见社区Changelog
建议在业务低峰期升级,变更过程中可能会导致已经建立的连接发生瞬断。

2019年10月

版本号 镜像地址 变更时间 变更内容 变更影响
v0.22.0.5-552e0db-aliyun registry.cn-hangzhou.aliyuncs.com/acs/aliyun-ingress-controller:v0.22.0.5-552e0db-aliyun 2019年10月24日 开启Server动态更新时支持泛域名、白名单和重定向配置。 建议在业务低峰期升级,变更过程中可能会导致已经建立的连接发生瞬断。

2019年07月

版本号 镜像地址 变更时间 变更内容 变更影响
v0.22.0.4-5a14d4b-aliyun registry.cn-hangzhou.aliyuncs.com/acs/aliyun-ingress-controller:v0.22.0.4-5a14d4b-aliyun 2019年07月18日 优化灰度发布规则,支持Perl正则匹配方式。 建议在业务低峰期升级,变更过程中可能会导致已经建立的连接发生瞬断。

2019年04月

版本号 镜像地址 变更时间 变更内容 变更影响
v0.22.0.3-da10b7f-aliyun registry.cn-hangzhou.aliyuncs.com/acs/aliyun-ingress-controller:v0.22.0.3-da10b7f-aliyun 2019年04月25日
  • 同步更新到社区0.22.0版本,变更记录请参见Ingress-Nginx
  • 开启动态更新时支持蓝绿发布和灰度发布机制。
  • 默认开启Nginx Upstream的动态更新特性。
  • 重大更新如下:rewrite-target注释采用capture group配置形式,配置方式请参见rewrite-target,平滑升级方式请参见Github
建议在业务低峰期升级,变更过程中可能会导致已经建立的连接发生瞬断。

2019年01月

版本号 镜像地址 变更时间 变更内容 变更影响
v0.20.0.2-cc39f1b-aliyun registry.cn-hangzhou.aliyuncs.com/acs/aliyun-ingress-controller:v0.20.0.2-cc39f1b-aliyun 2019年01月17日
  • 优化默认的Nginx Worker进程数量配置,防止过多Nginx进程占用宿主机资源。
  • 优化蓝绿发布和灰度发布时允许新老版本服务配置不同的服务端口号。
  • 解决灰度发布过程中,新版本服务后端无Active Pod时,Nginx配置测试失败的问题。
  • 修复因K8s API Server连接异常而导致Ingress Address端点不更新的问题。
建议在业务低峰期升级,变更过程中可能会导致已经建立的连接发生瞬断。

2018年11月

版本号 镜像地址 变更时间 变更内容 变更影响
v0.20.0.1-4597ce2-aliyun registry.cn-hangzhou.aliyuncs.com/acs/aliyun-ingress-controller:v0.20.0.1-4597ce2-aliyun 2018年11月29日
  • 同步更新到社区0.20.0版本,变更记录请参见社区
  • 升级Nginx版本到1.15.6,修复HTTP/2相关安全漏洞。
  • Path支持正则表达式配置。
  • 移除默认的default-http-backend服务,同时支持配置自定义默认后端服务。
  • 支持基于IP、User-Agent和Referer的黑名单配置。
  • 优化默认运行权限,剔除privileges运行权限。
  • 支持AJP协议。
建议在业务低峰期升级,变更过程中可能会导致已经建立的连接发生瞬断。