You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何保存Pod内配置实现Nginx Ingress URL重定向及更新K8s Pod镜像

配置不生效原因排查
  • 标准Nginx Ingress Controller的运行时nginx.conf是控制器根据集群内的Ingress资源、注解、全局ConfigMap配置动态生成的,镜像内置的静态配置会在控制器启动后被动态生成的配置覆盖,直接修改镜像内的静态配置文件无法生效。
  • 若使用自定义编译的控制器镜像,可执行kubectl exec <运行中的ingress-controller pod名> -n <命名空间> -- cat /etc/nginx/nginx.conf,确认Pod内实际加载的配置是否和镜像内的配置一致,排查是否有存储挂载覆盖了配置文件路径。
Kubernetes 更新Pod镜像的常用方法

除了kubectl set image外,还有以下几种常用方式:

  • 编辑Deployment实时配置
    执行kubectl edit deployment <deployment名称> -n <命名空间>,找到spec.template.spec.containers[].image字段修改为新镜像地址,保存后自动触发滚动更新。
  • 更新本地YAML清单后apply
    若本地保存了Deployment的YAML配置文件,直接修改文件内的镜像地址后,执行kubectl apply -f <deployment文件路径>即可触发更新,该方式更便于配置版本管理。
  • 滚动重启触发镜像重新拉取
    若镜像标签未修改(如使用latest标签),将Deployment的imagePullPolicy设置为Always后,执行kubectl rollout restart deployment <deployment名称> -n <命名空间>,即可重新拉取最新镜像并重建Pod。
  • 通过Kustomize批量更新镜像
    在kustomization.yaml中配置镜像替换规则后,执行kubectl apply -k <kustomize配置目录路径>,可批量更新关联工作负载的镜像版本。
Nginx Ingress URL重定向的正确配置方式

无需修改控制器镜像,通过Ingress资源的注解即可快速配置重定向规则,示例如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    # 路径重写规则
    nginx.ingress.kubernetes.io/rewrite-target: /$2
    # 若需要301/302跳转可使用如下注解
    # nginx.ingress.kubernetes.io/permanent-redirect: https://new.domain.com$request_uri
  name: redirect-demo
  namespace: default
spec:
  ingressClassName: nginx
  rules:
  - host: your-business-domain.com
    http:
      paths:
      - path: /source-path(/|$)(.*)
        pathType: Prefix
        backend:
          service:
            name: your-backend-service
            port:
              number: 80

若需要调整Nginx全局配置,直接修改Ingress Controller关联的全局ConfigMap即可,控制器会自动重载配置,无需更新镜像或重建Pod。

内容的提问来源于stack exchange,提问作者leo1rln

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 18:06:00