K8s Ingress Nginx漏洞升级修复教程

Kubernetes 集群中 Ingress Nginx 控制器是流量入口,其版本安全至关重要。
当上游发布安全公告时,你需要尽快升级到修复版本。
这篇教程从零开始,带你走完检查、升级、避坑和验证全过程。

升级前的环境确认

开始前,确认你拥有集群的 kubectl 权限,并能执行 helm list(如果通过 Helm 部署)。
查看当前 Ingress Nginx 控制器版本:

# 如果使用 Deployment 部署
kubectl get deployment -n ingress-nginx ingress-nginx-controller -o jsonpath='{.spec.template.spec.containers[0].image}'

# 或者查看 Pod 的镜像
kubectl get pods -n ingress-nginx -o custom-columns=NAME:.metadata.name,IMAGE:.spec.containers[0].image

同时记录当前使用的 Helm release 名称和命名空间(如果有):

helm list -n ingress-nginx

如果未使用 Helm,后续操作可改用 kubectl set image 或编辑 Deployment。

选择目标版本并执行升级

访问 Ingress Nginx 官方 Release 页面(https://github.com/kubernetes/ingress-nginx/releases),查看最新稳定版以及对应的安全修复记录。
选择高于当前版本的修复版本,例如 v1.11.4。

方式一:Helm 升级(推荐)

更新 Helm 仓库并升级:

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm upgrade ingress-nginx-controller ingress-nginx/ingress-nginx \
  --namespace ingress-nginx \
  --set controller.image.tag=v1.11.4 \
  --reuse-values

--reuse-values 会保留原有配置,只更新镜像标签。
如果你之前使用自定义 values 文件,建议改为 -f values.yaml。

方式二:直接更新 Deployment 镜像

kubectl set image deployment/ingress-nginx-controller -n ingress-nginx \
  controller=registry.k8s.io/ingress-nginx/controller:v1.11.4

升级后 Pod 会自动滚动更新,可通过以下命令观察状态:

kubectl rollout status deployment/ingress-nginx-controller -n ingress-nginx

避坑指南:升级前后的常见问题

  1. 镜像拉取失败:确保集群能访问 registry.k8s.io 或你已配置镜像代理。如果内网环境,提前将目标镜像拉取到本地仓库。
  2. 配置不兼容:新版可能废弃某些 annotation 或 ConfigMap 字段。升级后检查 Ingress 日志是否有 unknown annotation 警告,必要时调整配置。
  3. Helm 升级失败:若提示 values not compatible,尝试不加 --reuse-values 而使用 --reset-values 并重新传入 values 文件。
  4. Ingress 规则未生效:升级后控制器需要重新加载配置,通常自动完成。若长时间未生效,手动重启 Pod:kubectl rollout restart deployment/ingress-nginx-controller -n ingress-nginx。

验证升级效果与漏洞修复是否生效

升级完成后,按以下步骤确认漏洞已修复:

  1. 验证版本:通过 Pod 环境变量或日志查看镜像版本。
kubectl exec -n ingress-nginx deploy/ingress-nginx-controller -- /nginx-ingress-controller --version
  1. 检查 Ingress 是否正常服务:访问一个已存在的域名或 Service,确认返回 200。
curl -I http://your-domain.com
  1. 查看控制器日志:确认无异常错误。
kubectl logs -n ingress-nginx -l app.kubernetes.io/name=ingress-nginx --tail=50
  1. 使用安全扫描工具(如 trivy)扫描新镜像,确认漏洞列表已更新。
trivy image registry.k8s.io/ingress-nginx/controller:v1.11.4

如果扫描结果无高危严重漏洞,说明升级成功。

高频问题解答

Q:升级会影响线上业务吗?
A:滚动更新期间会有短暂的连接中断(通常几秒),建议在低峰期操作,并适当增加副本数保持高可用。

Q:升级后部分自定义配置失效怎么办?
A:对照官方变更日志,将废弃字段替换为推荐新字段。也可先在测试集群验证。

Q:如何备份当前配置?
A:使用 helm get values ingress-nginx-controller -n ingress-nginx > backup-values.yaml 备份 Helm values;或通过 kubectl get deployment,configmap -n ingress-nginx -o yaml 导出资源定义。

升级 Ingress Nginx 是保障集群安全的基础操作,建议定期关注官方安全公告。
如果你在处理升级过程中遇到其他异常,欢迎留言交流。

分享到:
上一篇
静态代码压缩节省海外加载带宽:Nginx 开启 Gzip
下一篇
本地Ollama对接外贸独立站AI选品接口实战教程
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意