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

如何使用Kustomize在Overlay中复制基础对象?

如何用Kustomize从单个基础资源生成多个自定义资源实例

可以实现,核心思路是复制基础资源生成多个独立实例,再分别对每个实例应用补丁修改名称和属性,避免互相覆盖。下面提供两种可行方案:

方案一:多次引用基础资源+定向补丁

在overlay的my-env/kustomization.yaml中,多次引用base目录,然后通过带target的补丁分别定位每个实例进行修改:

  1. 修改my-env/kustomization.yaml:
resources:
  - ../base
  - ../base  # 第二次引用base,生成第二个实例

patches:
  # 第一个实例的补丁
  - target:
      group: <你的自定义资源组>
      version: <你的自定义资源版本>
      kind: ClusterOutput
      name: <base中的原始名称>
    patch: |-
      - op: replace
        path: /metadata/name
        value: instance-1
      - op: add
        path: /spec/opensearch/logstash_prefix
        value: prefix-1
  # 第二个实例的补丁
  - target:
      group: <你的自定义资源组>
      version: <你的自定义资源版本>
      kind: ClusterOutput
      name: <base中的原始名称>
    patch: |-
      - op: replace
        path: /metadata/name
        value: instance-2
      - op: add
        path: /spec/opensearch/logstash_prefix
        value: prefix-2

注意:需要替换<你的自定义资源组/版本>以及<base中的原始名称>为实际值,base中的原始名称是base.ClusterOutput.yaml里metadata.name的初始值。

这种方法的优势是直观,不需要额外文件,适合实例数量不多的场景。

方案二:使用Kustomize生成器(适合大量实例)

如果需要生成大量实例,可以用Kustomize的generators功能,基于基础模板批量生成:

  1. 在my-env目录下创建一个生成器配置文件clusteroutput-generator.yaml:
apiVersion: builtin
kind: ListGenerator
metadata:
  name: clusteroutput-generator
elements:
  - name: instance-1
    prefix: prefix-1
  - name: instance-2
    prefix: prefix-2
  # 可以继续添加更多实例
  1. 修改my-env/kustomization.yaml,引入生成器和基础模板:
resources:
  - ../base

generators:
  - clusteroutput-generator.yaml

patches:
  - patch: |-
      - op: replace
        path: /metadata/name
        value: '{{.name}}'
      - op: add
        path: /spec/opensearch/logstash_prefix
        value: '{{.prefix}}'
    target:
      group: <你的自定义资源组>
      version: <你的自定义资源版本>
      kind: ClusterOutput
      name: <base中的原始名称>

这里利用Kustomize的模板渲染功能,将生成器中的参数注入到补丁中,批量生成不同的实例。

验证效果

运行kustomize build my-env,就能看到两个(或多个)独立的ClusterOutput实例,每个都有自己的名称和logstash_prefix属性,不会互相覆盖。

对于只需要单个实例的环境,只需保留一次base引用和对应的单个补丁即可,无需修改基础文件。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 21:00:58