服务简介
在Kubernetes集群中,Ingress是授权入站连接到达集群服务的规则集合,为您提供七层负载均衡能力,您可以通过 Ingress 配置提供外部可访问的 URL、负载均衡、SSL、基于名称的虚拟主机,阿里云容器服务K8S Ingress Controller在完全兼容社区版本的基础上提供了更多的特性和优化。
版本说明
v0.30.0.1-5f89cb606-aliyun:
- 新增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漏洞
- [Breaking Change] 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
v0.22.0.5-552e0db-aliyun:
- 开启Server动态更新时支持泛域名、白名单和重定向配置
v0.22.0.4-5a14d4b-aliyun:
- 优化灰度发布规则支持Perl正则匹配方式
v0.22.0.3-da10b7f-aliyun:
- 同步更新到社区0.22.0版本,变更记录参考Ingress-Nginx
- 开启动态更新时支持蓝绿发布和灰度发布机制
- 默认开启Nginx Upstream的动态更新特性
- [Breaking changes] rewrite-target注释采用capture group配置形式,配置方式参考rewrite-target,平滑升级方式参考这里
v0.20.0.2-cc39f1b-aliyun:
- 优化默认的Nginx Worker进程数配置防止过多Nginx进程占用宿主机资源
- 优化蓝绿发布和灰度发布时允许新老版本服务配置不同的服务端口号
- 解决灰度发布过程中当新版本服务后端无Active Pod时Nginx配置测试失败的问题
- 修复因K8S API Server连接异常而导致Ingress Address端点不更新的问题
0.20.0.1-4597ce2-aliyun:
- 同步更新到社区0.20.0版本,变更记录参考Ingress-Nginx
- 升级Nginx版本到1.15.6,修复HTTP/2相关安全漏洞
- Path支持正则表达式配置
- 移除默认的default-http-backend服务,同时支持配置自定义默认后端服务
- 支持基于IP、User-Agent和Referer的黑名单配置
- 优化默认运行权限,剔除privileges运行权限
- 支持AJP协议
0.15.0-3:
- 优化部分Nginx默认参数配置
- 修复蓝绿发布Cookie转发问题
0.15.0-2:
- 优化service-match对rewrite的支持
- 优化service-weight权重计算方式
0.15.0-1:
- 合并社区0.15.0版本
0.12.0-5:
- 更新灰度发布功能支持query和exact的路由匹配方式
0.12.0-4
- 支持灰度发布功能,具体可参考这里
0.12.0-3
- 修复社区版本upstreamHashBy无效的问题
0.12.0-2
- 合并社区0.12.0版本
- 支持蓝绿发布功能,具体可参考这里
升级说明
阿里云容器服务Kubernetes集群可直接通过集群管理的系统组件升级功能进行更新升级
镜像格式
registry.<region_id>.aliyuncs.com/acs/aliyun-ingress-controller: <version>
如:registry.cn-hangzhou.aliyuncs.com/acs/aliyun-ingress-controller:v0.30.0.1-5f89cb606-aliyun
手动升级
- Deployment 部署
kubectl -n kube-system set image deploy/nginx-ingress-controller nginx-ingress-controller=<INGRESS_CONTROLLER_IMAGE>
- DaemonSet 部署
kubectl -n kube-system set image ds/nginx-ingress-controller nginx-ingress-controller=<INGRESS_CONTROLLER_IMAGE>