资讯动态

Ingress NGINX Controller v1.11.6 版本发布详解:镜像清单、变更全览与源码级解析

发布时间:2026/9/13 4:35:10 来源:尧图企业网站定制
Ingress NGINX Controller v1.11.6 版本发布详解镜像清单、变更全览与源码级解析【免费下载链接】ingress-nginxIngress NGINX Controller for Kubernetes项目地址: https://gitcode.com/GitHub_Trending/in/ingress-nginx本指南围绕 Ingress NGINX Controller for Kubernetes 官方变更日志 controller-1.11.6.md 展开系统梳理 v1.11.6 补丁版本的镜像发布信息、全部代码变更含注解校验、文档、CI 与依赖升级及其底层实现依据。读者将掌握该版本的确切镜像与摘要值、理解 ssl-ciphers 注解放开下划线 背后的正则校验逻辑并了解变更日志的自动化生成机制可用于后续版本升级评估与故障排查。版本概览与镜像发布信息controller-v1.11.6 是 ingress-nginx 1.11 稳定分支上的一个补丁版本patch release没有引入新的功能特性核心目标是重建镜像、同步依赖、修正文档与 CI 流程。与所有 Controller 发布一样本次同时提供两套镜像镜像完整引用registry tag digest标准 Controllerregistry.k8s.io/ingress-nginx/controller:v1.11.6sha256:4f04fad99f00e604ab488cf0945b4eaa2a93f603f97d2a45fc610ff0f3cad0f9Chroot 版 Controllerregistry.k8s.io/ingress-nginx/controller-chroot:v1.11.6sha256:596f8b9ae4773d3b00dfd65855561419c7e70ecb23569a7a2998b47e160b4f85其中controller-chroot镜像对应于仓库内 rootfs/Dockerfile-chroot 与 rootfs/chroot.sh 所构建的 chroot 隔离运行形态用于对进程文件系统视图做进一步隔离。说明当前仓库 HEAD 的 TAG 已演进到v1.15.0charts/ingress-nginx/Chart.yaml 中 Helm Chart 的appVersion为1.15.1。本文所述 v1.11.6 属于历史稳定版本引用其镜像时应以固定 digest 为准避免使用浮动 tag。镜像清单的完整还原变更日志主体由模板 changelog/controller.md.gotmpl 自动渲染生成。对照模板可知All changes 一节由 PR 标题逐条填充以下为该模板渲染后 v1.11.6 的全部 30 项变更按类别归类如下。镜像构建与重建Images / TestsImages: Trigger controller build. (#13314)本次发布直接触发 Controller 镜像重建最终产出上文两张镜像。Images: Trigger other builds (1/2). (#13291)与Images: Trigger other builds (2/2). (#13294)分批触发其余镜像如 custom-error-pages、kube-webhook-certgen 等的构建。Images: Trigger NGINX build. (#13263)与Images: Trigger NGINX build. (#13220)触发基础 NGINX 镜像重建。Images: Bump NGINX to v0.3.3. (#13267)与Images: BumpNGINX_BASEto v0.3.2. (#13223)将 NGINX 基础镜像分别升级至 v0.3.3 与 v0.3.2。仓库 NGINX_BASE 记录了该类基础镜像的精确引用其格式为registry.k8s.io/ingress-nginx/nginx:v2.2.8sha256:...而 images/nginx/TAG 表明随后的 NGINX 构建镜像已迭代到v2.2.9。Images: Fix FromAsCasing. (#13126)修正 Dockerfile 中FROM指令的大小写写法Docker 构建告警级规范问题。Images: Extract modules. (#13124)将镜像构建中的模块提取逻辑拆分改善构建层复用。Tests: Bump Test Runner to v1.3.3. (#13288)、Tests: Bump Test Runner to v1.3.2. (#13234)、Images: Trigger Test Runner build. (#13270)、Images: Trigger Test Runner build. (#13228)E2E 测试运行器镜像升级与重建。Tests Docs: Bump images. (#13309)同步更新测试与文档中引用的镜像版本。依赖与工具链升级Go / CIGo: Bump to v1.24.2. (#13150)Go 工具链升级到 1.24.2。注意当前仓库 GOLANG_VERSION 已为1.26.1属于后续版本迭代结果。Go: Update dependencies. (#13284 / #13260 / #13247 / #13211 / #13151)多轮 Go 依赖批量更新。Go: Fix Mage. (#13080)修复基于 Mage仓库 magefiles/ 使用的 Go 构建工具的构建问题。CI: Update Kubernetes to v1.32.4. (#13256)CI 环境中的 Kubernetes 版本升级到 v1.32.4。CI: Do not fail fast. (#13131)调整 CI 矩阵策略避免某一作业失败导致整组失败。Tests: Fallback toyq. (#13091)测试脚本在缺少特定工具时回退到yq。注解行为修正AnnotationsAnnotations: Allow ciphers with underscores. (#13141)这是本版本中唯一直接影响运行时行为的代码变更详见下文专节解析。Plugin: Improve error handling. (#13113)改进 kubectl 插件cmd/plugin/的错误处理逻辑。文档与修复DocsDocs: How to modify NLB TCP timeout. (#13250)新增在 docs/deploy/baremetal.md 中如何调整云厂商 NLBNetwork Load BalancerTCP 空闲超时的说明。Docs: Improve formatting inmonitoring.md. (#13240)优化 docs/user-guide/monitoring.md 排版。Docs: Enable metrics in manifest-based deployments. (#13236)补充基于裸 manifest 部署时启用 Prometheus 指标采集的步骤。Docs: Fix link in installation instructions. (#13193)修复安装指引中的失效链接。Docs: Fix OpenTelemetry listing. (#13108)修正 docs/user-guide/third-party-addons/opentelemetry.md 中的项目清单。核心代码变更深度解析允许带下划线的 SSL 密码套件PR #13141 Annotations: Allow ciphers with underscores 是 v1.11.6 中唯一的代码逻辑变更对应nginx.ingress.kubernetes.io/ssl-ciphers注解的输入校验放宽。背景注解如何落到 NGINX 配置ssl-ciphers注解由 internal/ingress/annotations/sslcipher/main.go 解析。其内部使用一条正则表达式对用户输入做白名单校验// Should cover something like ALL:!aNULL:!EXPORT56:RC4RSA:HIGH:MEDIUM:LOW:SSLv2:EXP // (?:STRENGTH) is included twice so it can appear before or after SECLEVELn var regexValidSSLCipher regexp.MustCompile(^(?:(?:[A-Za-z0-9!:\-_])*(?:STRENGTH)*(?:SECLEVEL[0-5])*(?:STRENGTH)*)*$)sslCipherAnnotation: { Validator: parser.ValidateRegex(regexValidSSLCipher, true), Scope: parser.AnnotationScopeIngress, Risk: parser.AnnotationRiskLow, Documentation: Using this annotation will set the ssl_ciphers directive at the server level. This configuration is active for all the paths in the host., },从源码结构看该正则允许的字符集为[A-Za-z0-9!:\-_]即此前不允许出现下划线_。而 OpenSSL 1.1.1 引入的 TLS 1.3 密码套件名如TLS_AES_256_GCM_SHA384、TLS_CHACHA20_POLY1305_SHA256、TLS_AES_128_GCM_SHA256恰好大量使用下划线。这意味着在 v1.11.6 之前用户若试图在ssl-ciphers注解中显式书写 TLS 1.3 套件名会触发正则校验失败、注解被拒绝v1.11.6 通过放开下划线字符使得这类配置可以正常通过校验并写入 NGINX 的ssl_ciphers指令。单元测试的印证internal/ingress/annotations/sslcipher/main_test.go 的表驱动测试完整覆盖了该行为合法输入OpenSSL 传统格式ALL:!aNULL:!EXPORT56:RC4RSA:HIGH:MEDIUM:LOW:SSLv2:EXP、SECLEVEL2/SECLEVEL3/SECLEVEL5组合、STRENGTH前缀或后缀写法均被接受TLS 1.3 套件名TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256校验通过预期结果expectErr: false非法输入含分号与路径分隔符的ALL:SOMETHING:;locationXPTO被拒绝expectErr: true防止注解注入恶意 NGINX 指令。此外同文件的Config结构体表明解析结果最终会携带SSLCiphers与SSLPreferServerCiphers两个字段后者由nginx.ingress.kubernetes.io/ssl-prefer-server-ciphers注解解析为on/off对应 NGINX 的ssl_prefer_server_ciphers指令两者均在 server 级生效、对该 host 下所有 path 起作用。实际配置用法在 docs/user-guide/nginx-configuration/annotations.md 的 SSL ciphers 一节中官方给出了与测试用例一致的示例nginx.ingress.kubernetes.io/ssl-ciphers: ALL:!aNULL:!EXPORT56:RC4RSA:HIGH:MEDIUM:LOW:SSLv2:EXPnginx.ingress.kubernetes.io/ssl-prefer-server-ciphers: true升级到 v1.11.6 后还可按需加入 TLS 1.3 套件nginx.ingress.kubernetes.io/ssl-ciphers: TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256需要提醒的是该注解只作用于serverhost级别若需要控制 Controller 与上游后端之间连接的密码套件应使用nginx.ingress.kubernetes.io/proxy-ssl-ciphers同一文档 annotations.md 的 Backend certificate authentication 一节中可查。依赖更新一览v1.11.6 同时收编了一批来自 GitHub 的自动化依赖升级 PR依赖版本变化actions/download-artifact4.2.1 → 4.3.0actions 组2 次批量更新#13281、#13174github.com/onsi/ginkgo/v22.23.3 → 2.23.4go 组2 次跨目录更新#13206、#13180github.com/prometheus/client_golang1.21.1 → 1.22.0根模块与 images/custom-error-pages/rootfs 两处github/codeql-action3.28.14 → 3.28.15golang.org/x/oauth20.28.0 → 0.29.0github.com/fsnotify/fsnotify1.8.0 → 1.9.0golang.org/x/crypto0.36.0 → 0.37.0goreleaser/goreleaser-action6.2.1 → 6.3.0golangci/golangci-lint-action6.5.2 → 7.0.0其中prometheus/client_golang的升级直接关系 Controller 暴露的指标端点见 internal/ingress/metric/ 与 docs/user-guide/monitoring.md升级后 Prometheus 采集兼容性保持不变但建议在发布验证时顺带检查指标抓取。版本对比与升级建议本版本对应 Git 比较区间为controller-v1.11.5...controller-v1.11.6变更日志末尾的 Full Changelog 链接指向该区间是 1.11.x 系列内的常规补丁升级。唯一运行时行为变化是 ssl-ciphers 注解允许下划线字符对绝大多数存量配置无破坏性影响属于向后兼容的放宽升级前应重点回归 HTTPS 服务的 TLS 握手行为。建议操作升级后执行kubectl get pods -n ingress-nginx -l app.kubernetes.io/nameingress-nginx确认 Controller 全部滚动到v1.11.6镜像对涉及自定义ssl-ciphers注解的 Ingress 资源可参照上文测试用例中的合法/非法样例做一次注解校验同时关注 changelog/ 目录中后续 1.11.7、1.12.x 的变更评估继续升级的节奏。【免费下载链接】ingress-nginxIngress NGINX Controller for Kubernetes项目地址: https://gitcode.com/GitHub_Trending/in/ingress-nginx创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价