作用
- Kustomize 可以通过
xxxgenerator
字段生成ConfigMap和Secret资源 - Kustomize 可以通过
resources
字段组合多个不同的资源统一管理 - Kustomize 可以对于统一管理的资源进行批量修改,如:增加共同的namespace、增加共同的标签、增加共同的名字前后缀等
- Kustomize 可以通过
patchesStrategicMerge
字段对于资源进行补丁修改 - Kustomize 可以通过
images
字段提供定制容器镜像或者将其他对象的字段值注入到容器中的能力,并且不需要创建补丁 - Kustomize 可以通过
vars
字段 将变量通过$(vars)的方式注入到容器中
命令
- 运行
kubectl kustomize ./
可以获得自动生成的资源以及统一修改后的资源组合在一起的部署文件 - 运行
kubectl apply -k ./
会使用生成的组合部署文件进行资源部署 - 运行
kubectl get -k ./
查看部署后的资源
Base和Overlay
Kustomize 中有 基准(bases) 和 覆盖(overlays) 的概念区分。 基准 是包含 kustomization.yaml 文件的一个目录,其中包含一组资源及其相关的定制。 基准可以是本地目录或者来自远程仓库的目录,只要其中存在 kustomization.yaml 文件即可。 覆盖 也是一个目录,其中包含将其他 kustomization 目录当做 bases 来引用的 kustomization.yaml 文件。 基准不了解覆盖的存在,且可被多个覆盖所使用。 覆盖则可以有多个基准,且可针对所有基准中的资源执行组织操作,还可以在其上执行定制。