1.概述
官网:https://kustomize.io/
参考文档:https://kubectl.docs.kubernetes.io/guides/
Kustomize是一个开源的Kubernetes配置管理工具。
在Kubernetes上运行一个项目,可能存在多套运行环境:开发环境、测试环境、生产环境,多套环境可能需要编写多个存在微小差异的YAML配置文件,而这多套YAML文件只存在微小的配置差异(比如镜像、标签等),Kustomize允许将这些公共部分写入到基础配置文件(Base/xxx.yaml)中,将差异部分写入到对应不同运行环境需要覆盖的配置文件(Overlay/<项目目录>/xxx.yaml)中,以简化管理和编写配置文件。
Kustomize已内置Kubernetes中,可以使用"kubectl apply -k"命令指定配置目录。
1.1.Kustomize的组成和目录结构
~/someApp
├── base
│ ├── deployment.yaml
│ ├── kustomization.yaml
│ └── service.yaml
└── overlays
├── development
│ ├── cpu_count.yaml
│ ├── kustomization.yaml
│ └── replica_count.yaml
└── production
├── cpu_count.yaml
├── kustomization.yaml
└── replica_count.yaml
Kustomize主要由Base、Overlay两个部分组成,分别对应Base、Overlay目录。
- Base,基础配置文件存放目录。目录下应该存放kustmization配置文件+资源配置文件。
- Overlays/<项目目录>,差异/要更新的配置文件存放目录,期望覆盖更新、增加、减少的资源对象。目录下应该存放kustmization配置文件+补丁配置文件+更多资源配置文件。
1.2.kustomization.yaml
在每个目录下都应存在一个kustomization.yaml,它是Kustomize的配置文件,用于描述和说明Base、Overlays目录下Kuernetes资源配置文件之间的关系,或者定义声明公共的资源配置部分。
kustomization.yaml有自己的语法,最基础的声明如下:
Base/kustomization.yaml:
commonLabels:
app: hello
resources:
- deployment.yaml
- service.yaml
Overlays/development/kustomization.yaml:
bases:
- ../../base
patchesstrategicmerge:
- cpu_count.yaml
- replica_count.yaml
2.kustomization常用指令
Base/kustomization.yaml:
namePrefix: my-
resources:
- deployment.yaml
- service.yaml
commonLabels:
kustomize: dome-Nginx
commonAnnotations:
kustomize/description: "This is an application managed by kustomize"
Overlays/production/kustomization.yaml:
bases:
- ../../base
patchesstrategicmerge:
- deployment.yaml
resources([])
指定要关联的资源配置文件列表。
bases([])
patchesstrategicmerge([])
指定要更新合并的资源配置文件列表。
namePrefix(string)
commonLabels([])
commonAnnotations([])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。