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

PatchStrategicMergeTransformer打补丁致DeploymentConfig容器配置丢失求助

问题原因

你当前使用的PatchStrategicMergeTransformer没有正确触发Kubernetes针对容器数组的按名称合并逻辑,导致整个portal容器条目被补丁内容直接替换,而非合并新增的resources字段。

解决办法

办法一:改用Kustomize原生patches字段(推荐)

删掉自定义的PatchStrategicMergeTransformer配置,直接在kustomization.yaml中使用Kustomize原生的补丁配置,它会自动识别DeploymentConfig的容器合并规则:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- base/deploymentconfig.yaml
patches:
- path: patches/add-resources-patch.yaml
  target:
    group: apps.openshift.io
    version: v1
    kind: DeploymentConfig
    name: portal

你的现有补丁文件patches/add-resources-patch.yaml无需修改,Kustomize会自动将resources字段合并到原有的portal容器中,保留镜像、端口、探针等所有原有配置。

办法二:使用JSON6902补丁精准修改

如果需要更精确的字段控制,可以改用JSON补丁来添加resources字段,彻底避免替换容器条目:

  1. 创建patches/add-resources-patch.json文件,内容如下:
[
  {
    "op": "add",
    "path": "/spec/template/spec/containers/0/resources",
    "value": {
      "limits": {
        "cpu": "1",
        "memory": "512Mi"
      },
      "requests": {
        "cpu": "0.5",
        "memory": "256Mi"
      }
    }
  }
]
  1. 修改kustomization.yaml引用该JSON补丁:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- base/deploymentconfig.yaml
patches:
- path: patches/add-resources-patch.json
  target:
    group: apps.openshift.io
    version: v1
    kind: DeploymentConfig
    name: portal

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 08:13:27