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

Kustomize如何批量Patch名称含指定前缀的Deployment资源

批量Patch名称带指定前缀的Deployment的解决方法

问题说明

需要批量修改名称以nginx-为前缀的多个Deployment(如nginx-v1、nginx-deployment),但原配置存在两个问题导致补丁不生效:

  • 将namePrefix写在补丁文件中,误解了其作用:namePrefix是kustomization的顶层字段,用于给生成的资源名称添加前缀,而非匹配补丁的目标资源;
  • 使用patchesStrategicMerge需要精确匹配资源名称,无法通过前缀批量匹配目标资源。

解决方案

改用kustomize的patches字段,通过target选择器结合通配符匹配名称前缀,实现批量补丁。

1. 编写补丁文件(示例命名为scale-replicas.yaml)

apiVersion: apps/v1
kind: Deployment
spec:
  replicas: 10

2. 修改kustomization.yml配置

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - deployment-v1.yaml
  - deployment-v2.yaml
patches:
  - target:
      kind: Deployment
      name: nginx-*  # 通配符匹配所有名称以nginx-开头的Deployment
    path: scale-replicas.yaml

扩展:通过标签批量匹配

如果目标资源有统一标签(比如两个Deployment都带有app: web标签),也可以用标签选择器实现批量补丁,修改patches部分如下:

patches:
  - target:
      kind: Deployment
      labelSelector: app=web
    path: scale-replicas.yaml

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 12:35:02