kus
kubernetes 自1.14 之后,Kubernetes 项目本身开始具备了原生的应用管理能力,这其中最重要的一个功能,就是 Kustomize。
Kustomize 允许用户从一个基础 YAML 文件,通过 overlay 的方式生成最终部署应用所需的 YAML 文件,而不是像 Helm 那样通过字符串替换的方式来直接修改基础 YAML 文件(模板)。这样,在一个用户通过 Overlay 生成新的 YAML 文件的同时,其他用户可以完全不受影响的使用任何一个基础 YAML 或者某一层生成出来的 YAML 。这使得每一个用户,都可以通过 fork/modify/rebase 这样 Git 风格的流程来管理海量的 YAML 文件。这种 PATCH 的思想跟 Docker 镜像是非常类似的,它既规避了“字符串替换”对 YAML 文件的入侵,也不需要用户学习蹩脚的 DSL 语法(比如 Lua)。
在kubernetes 1.14 之后,Kustomize 已经成为了 kubectl 的一个内置命令。不难看到,Kubernetes 社区正在探索一种 Helm 之外的、更加 Kubernetes 原生的应用管理方法。具体效果如何,我们不妨拭目以待。
当然,你可以只需要1.14的kubectl就行,不需要1.14的kubernetes服务器版本支持。
非常适合多环境部署(例如,你需要发布到开发、测试、生产环境)
用法:
1)制作一个kustomization文件
在包含YAML 资源 文件(部署,服务,配置映射等)的某个目录中,创建一个 kustomization文件。
此文件应声明这些资源以及要应用于它们的任何自定义,例如添加公共标签。
文件结构:
~/someAPP
├── deployment.yaml
├── kustomization.yaml
└── service.yaml
此目录中的资源可能是其他人配置的分支。如果是这样,您可以轻松地从源材料重新定义以捕获改进,因为您不直接修改资源。
生成定制的YAML:
$ kubectl kustomize ~/someApp
YAML可以直接应用于集群:
$ kubectl kustomize build | kubectl apply -f -
注意 Kustomize现在可以在kubectl v1.14上使用,可以通过指定包含以下内容的目录来使用kustomization.yaml
:
$ kubectl apply -k ~/someApp
2)继承与Patches
通过继承基础 配置来适应不同的发布环境- 如 开发,测试和生产。
文件结构:
~/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
base: 存放各个环境的公共配置,kustomization.yaml 如下:
resources:
- deployment.yaml
- service.yaml
然后在 overlays 中可以定义子环境,上面定义了两个子环境(devlopment、production):
overlays/development/kustomization.yaml如下:
bases:
- ../../base
patches:
- cpu_count.yaml
- replica_count.yaml
可以看到 overlays 下继承了 base 的配置,并且添加了 cpu_count.yaml、replica_count.yaml 配置。同时,kustomize 不仅仅支持文件级别的 patch,还支持对一个文件某些字段的 patch 如下所示,replica_count.yaml
只包含了有关 replicas
的部分即可,在执行 kustomize build
之后就可以将这部分覆盖默认的配置。
生成YAML
$ kubectl kustomize ~/someApp/overlays/production
YAML可以直接应用于集群:
$ kubectl kustomize ~/someApp/overlays/production | kubectl apply -f -
OR
$ kubectl apply -k ~/someApp/overlays/production
kustomization.yaml 内容说明:https://github.com/kubernetes-sigs/kustomize/blob/master/docs/kustomization.yaml
官网:https://github.com/kubernetes-sigs/kustomize
更多例子:
https://github.com/4220182/kustomize-example
相关阅读
在实际应用中,运营人员在编辑数据时不希望因不小心点击了浏览器的回退或刷新按钮导致花费了很长时间编辑的数据丢失。可以采用以
今天seo实验室小编要来给各位讲述的内容是爱淘宝的每日红包链接在哪?爱淘宝红包怎么使用?如果大家感兴趣的话,那就跟上小编我的脚
用户在智能电视与电视盒子之间,大部分选择安装电视盒子,经济适用,连接电视后,观看也非常方便,但电视盒子中也有个缺点,可安装的软件比较
相机参数标定(camera calibration)及标定结果如何使用
一直都想写一写这个主题,但是,一直都感觉有点虚,也没有去整理。在网上搜了一下,发现大多数都是转来转去,看着也是似懂非懂的,让人很老火
备注:更多资料尽在开发者社区的文档中心 RokidOS开放源代码项目简介 RokidOS是 Rokid领导的基于云端语音服