news 2026/9/8 22:10:50

ingress-nginx 兼容性:K8s 版本适配与升级指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ingress-nginx 兼容性:K8s 版本适配与升级指南

ingress-nginx 兼容性:K8s 版本适配与升级指南

【免费下载链接】ingress-nginxIngress NGINX Controller for Kubernetes项目地址: https://gitcode.com/GitHub_Trending/in/ingress-nginx

集群升完 1.33,ingress 集体 404 是怎么回事

上次我们把生产集群从 1.30 一把升到 1.33,控制器还停留在旧版本。结果升级完不到二十分钟,业务方就炸锅了:所有 ingress 全 404,控制器日志里刷着一屏 RBAC forbidden 报错。折腾半天才定位到根子——ingress-nginx 的版本适配矩阵没对上。下面这套流程,就是我们从那次事故里总结出来的:先对版本、再走升级、最后验证,跟着做基本不会翻车。

先看这张表,确定你的版本组合

仓库 README 里有一张 Supported Versions 表,列中的版本都跑过完整的 E2E 测试才算"支持"。挑三行最常用的:

Ingress-NGINX 版本K8s 支持版本AlpineNginxHelm Chart
v1.15.11.35, 1.34, 1.33, 1.32, 1.313.23.31.27.14.15.1
v1.13.31.33, 1.32, 1.31, 1.30, 1.293.22.11.27.14.13.3
v1.12.81.32, 1.31, 1.30, 1.29, 1.283.22.21.25.54.12.8

用法很直白:先kubectl get nodes确认你的 K8s 版本,再找区间能覆盖它的那一行,控制器、Nginx、Helm chart 版本一并定了。比如 1.33 的集群,就得看 v1.13.3 及以上;v1.12 那行的区间最高只到 1.32,别拿来硬扛 1.33。

三条升级路径,各自的坑不一样

无 Helm 时只改镜像如何完成升级

yaml 裸装的场景,升级就是把 Deployment 里的镜像 tag 换掉,最短路径一条命令:

kubectl set image deployment/ingress-nginx-controller \ controller=registry.k8s.io/ingress-nginx/controller:v1.0.5@sha256:55a1fcda5b7657c372515fe402c3e39ad93aa59f6e4378e82acd99912fe6028d \ -n ingress-nginx

⚠️ 换 tag 前务必确认自定义模板和 ConfigMap 对新版本仍兼容,官方步骤详见 upgrade 文档。

Helm reuse-values 升级老 release

用 Helm 装的,升级时带上--reuse-values即可保留全部既有配置:

helm upgrade --reuse-values ingress-nginx ingress-nginx/ingress-nginx

⚠️ 跨大版本升级时部分 values 项已重命名,升完用helm get values对新一次 chart 默认值,别只盯着版本号。

从 stable/nginx-ingress 迁移过来怎么办

老 chart 已停止维护,两条路二选一:

  • 非关键服务:直接卸载老 release,重新安装 ingress-nginx/ingress-nginx chart,五分钟搞定。
  • 生产关键服务:先装第二套控制器,DNS 流量逐步切过去,两边同时观察日志,老控制器流量排空后再卸载。

⚠️ 两套 chart 的资源名和标签体系有变化,动手前先翻一遍 chart 的迁移说明。

IngressClass 缺失和 RBAC 报错的 30 秒速诊

症状:升级 K8s 后部分 ingress 404

  • 现象:路由规则没删没改,访问却全 404。
  • 验证:kubectl get ingressclass,再看各 ingress 是否设置了ingressClassName字段。
  • 修复:补建 IngressClass 资源,字段名与 IngressClass 的 name 保持一致;高版本 K8s 下路径匹配语义也变了,改完用 curl 逐条验证。

症状:控制器日志刷 forbidden,配置不再生效

  • 现象:新 ingress 建了,但 Nginx 配置里没有对应规则。
  • 验证:kubectl logs -n ingress-nginx -l app.kubernetes.io/name=ingress-nginx --tail=50,找cannot list resources "ingresses" ... forbidden这类报错。
  • 修复:按当前版本重新应用 ClusterRole 与 ClusterRoleBinding,权限补齐后观察日志中 reload 是否恢复正常。

升级之后,盯这三个指标

rollout 完成不等于一切正常,Prometheus 里有三个指标值得先扫一眼:

  • nginx_ingress_controller_config_last_reload_successful:应为 1,出现 0 说明配置重载失败过
  • nginx_ingress_controller_response_duration_seconds:延迟分位是否出现尖刺
  • nginx_ingress_controller_nginx_process_requests_total:请求总量是否在持续上涨

仓库的 deploy/prometheus 和 deploy/grafana 目录自带现成部署清单与看板模板,直接 apply 就能用。

延伸阅读出口

  • changelog/:每个控制器版本的详细变更
  • docs/deploy/:baremetal、各云厂商环境与升级说明
  • docs/developer-guide/:控制器代码结构与二次开发
  • docs/faq.md:版本适配相关的常见疑问

把升级当成一次版本适配而不是简单换镜像:升前对表、升中留回滚点、升后盯指标。✅ 下次集群再往前走一个大版本,你就有现成的清单可以照着跑了。

【免费下载链接】ingress-nginxIngress NGINX Controller for Kubernetes项目地址: https://gitcode.com/GitHub_Trending/in/ingress-nginx

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/8 22:06:02

WordTree:专为中文长篇作者打造的跨平台小说写作IDE

简介:WordTree集成写作工具是一款专为中文作家设计的跨平台小说创作IDE,面向网络文学作者、长篇小说创作者及写作爱好者,可有效解决创作中人物关系易混乱、世界观难构建、素材分散、进度不可控等痛点。压缩包共432个文件,约31.45M…

作者头像 李华
网站建设 2026/9/8 22:05:05

全景牙齿X光片牙位标注数据集制作:从FDI编号到Pascal VOC格式

简介:全景牙齿X光片牙位标注数据集面向医疗影像智能分析与目标检测任务,使用Labelimg完成精细标注,内含经过筛选的清晰X光片与对应XML标注文件。压缩包共210个文件,包括105张JPG影像和105个XML标注,体积约28.49MB&…

作者头像 李华
网站建设 2026/9/8 22:04:53

第一次跑通大模型强化学习,到底要先做对哪几件事?

第一次跑通大模型强化学习,到底要先做对哪几件事? 【免费下载链接】trl Train transformer language models with reinforcement learning. 项目地址: https://gitcode.com/GitHub_Trending/tr/trl TRL 是大模型强化学习的后训练工具包&#xff1…

作者头像 李华