Linux 命令速查
云原生 man kustomize

kustomize

用 kustomization.yaml 定制 Kubernetes 配置的原生工具

返回

补充说明

kustomize 是 Kubernetes 原生的配置定制工具,通过 kustomization.yaml 文件描述对基础 YAML 的修改(如改镜像、加标签、改副本数),而不改动原始清单文件。它已被集成进 kubectl apply -k,也可作为独立二进制使用。核心概念是 base(基础配置)和 overlay(覆层配置),overlay 通过 resources 引用 base,并可用 patches 做外科手术式修改。

相比 Helm 的模板功能,kustomize 不引入模板语法,直接编辑 YAML,更简单、可审计,特别适合多环境(dev/staging/prod)差异化管理和 GitOps 工作流。它支持 configMapGenerator/secretGenerator 自动生成 ConfigMap 和 Secret,并自动添加内容哈希后缀以触发滚动更新。

典型场景:同一套基础配置部署到多环境、定制第三方 Chart 的 manifests、与 Argo CD/Flux 配合。注意:kustomize 只能操作 YAML 文本,不能执行任意逻辑;单 kustomization.yaml 中 patches(JSON Patch)与 patchesStrategicMerge(战略合并补丁)写法不同,勿混淆。

语法

kustomize build [选项] [目录]

选项

kustomize build <dir>        # 渲染 kustomization.yaml 所在目录的最终 YAML
kustomize build --load-restrictor LoadRestrictionsNone # 允许跨目录引用
kustomize version            # 显示版本

实例

# 渲染 base 目录下的最终配置
kustomize build ./base

# 渲染 overlay 目录(叠加多环境修改)并直接应用到集群
kustomize build ./overlays/prod | kubectl apply -f -

# 使用 kubectl 的 -k 参数(等效于上面):
kubectl apply -k ./overlays/staging

# 查看渲染结果
kustomize build ./overlays/prod

参考链接