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

如何用Kustomize移除Ingress注解?执行Build遇路径缺失错误

解决Kustomize删除Ingress注解报错的问题

问题场景

基础Ingress配置包含nginx.ingress.kubernetes.io/auth-snippet注解,通过overlays的JSON Patch删除该注解时,执行kustomize build报错:

Error: remove operation does not apply: doc is missing path: "/metadata/annotations/nginx.ingress.kubernetes.io/auth-snippet": missing value

原因分析

JSON Patch的路径中,/是层级分隔符,而注解键名nginx.ingress.kubernetes.io/auth-snippet本身包含/,未转义的话会被解析成层级结构,导致Kustomize无法匹配到正确的注解键。

解决方案

方案1:修正JSON Patch的路径转义

修改ingress-patch.yml,将键名中的/转义为~1(JSON Patch规定的转义字符):

- op: remove
  path: /metadata/annotations/nginx.ingress.kubernetes.io~1auth-snippet

方案2:使用Strategic Merge Patch替代JSON Patch

创建ingress-patch.yml,直接覆盖annotations字段(只保留需要的注解,不写入目标注解即可):

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress
  annotations:
    # 保留其他需要的注解,省略nginx.ingress.kubernetes.io/auth-snippet

然后在overlay目录的kustomization.yml中添加该补丁:

patches:
- path: ingress-patch.yml

内容的提问来源于stack exchange,提问作者Container-Man

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 14:05:22