kustomize init
kustomize build overlays/prod
kubectl apply -k overlays/prod
kubectl kustomize overlays/prod
kustomize edit set image app=registry.example.com/app:1.0.0
kustomize edit add resource deployment.yaml
kustomize edit add patch --path patch.yaml
目录结构:
base/
kustomization.yaml
deployment.yaml
service.yaml
overlays/
dev/kustomization.yaml
prod/kustomization.yaml
overlay 示例:
resources:
- ../../base
images:
- name: app
newName: registry.example.com/app
newTag: 1.0.0
patches:
- path: replicas.yaml
| 场景 | 写法 |
|---|---|
| 改镜像 | images: |
| 改副本数 | patch 或 replicas: |
| 加标签 | commonLabels / labels |
| 改命名空间 | namespace: |
| 加配置 | configMapGenerator |
| 加密钥 | secretGenerator |
| 组合多个目录 | resources: |
| 删除字段 | JSON6902 patch remove |
kustomization.yaml 里的路径相对于该文件,不是当前目录。commonLabels 会加到 selectors,可能影响已有 Deployment。configMapGenerator 改名会触发滚动更新,注意 hash 后缀。kubectl apply -k 和 kustomize build | kubectl apply -f - 行为基本一致,但版本要匹配。secretGenerator 明文提交到 Git。apply -k