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

如何让Kustomize补丁仅更新容器,创建时触发错误?

实现Kustomize补丁仅更新不创建容器并报错

要让Kustomize仅在目标容器存在时执行更新,不存在则直接报错,你可以通过RFC 6902格式的Json补丁实现——这类补丁的路径定位是精确匹配的,当指定的容器不存在时,构建过程会直接抛出错误,不会自动创建新容器,刚好能解决你之前遇到的重复容器问题。

具体操作步骤:

  1. 创建Json格式的补丁文件(比如命名为update-backend-image.json),内容如下:
[
  {
    "op": "replace",
    "path": "/spec/template/spec/containers/name=backend/image",
    "value": "ghcr.io/foo/bar"
  }
]

这里通过name=backend的字段选择器精准匹配目标容器,replace操作仅会对已存在的容器镜像进行更新。

  1. 在你的kustomization.yaml中引用这个补丁:
patches:
- target:
    group: apps
    version: v1
    kind: Deployment
    name: foo
    namespace: foo-system
  path: update-backend-image.json

效果验证:

  • 当目标Deployment中存在backend容器时,kustomize build会正常执行并完成镜像更新;
  • 当容器不存在时,构建会抛出类似jsonpatch: replace operation does not apply: doc is missing path的错误,直接终止流程,避免意外创建重复容器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 06:04:58