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

如何使用Kustomize为Kubernetes StatefulSet添加环境变量

问题根因

你使用的JSON Patch格式存在错误:路径/spec/template/spec/containers/0/env/-的含义是向env数组末尾追加单个元素,因此value字段需要直接传入单个环境变量配置对象,你在value下额外加了短横线将值定义为了数组,导致追加逻辑无法匹配,最终补丁不生效。

修正方案

方案1:修改JSON Patch格式

直接移除value下多余的短横线即可:

namespace: myns

resources:
...

patches:
- patch: |-
    - op: add
      path: "/spec/template/spec/containers/0/env/-"
      value:
        name: MY_ENV2
        value: "2"
  target:
    kind: StatefulSet
    namespace: myns
    name: myapp

方案2:使用更易维护的Strategic Merge Patch

这种写法不需要记忆数组下标,也不需要关心原始配置是否存在env字段,Kustomize会自动合并:

namespace: myns

resources:
...

patches:
- patch: |-
    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: myapp
      namespace: myns
    spec:
      template:
        spec:
          containers:
          - name: mycontainer
            env:
            - name: MY_ENV2
              value: "2"
  target:
    kind: StatefulSet
    namespace: myns
    name: myapp

内容的提问来源于stack exchange,提问作者Salvatore D'angelo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:15:05