关于资源管理器:Kubernetes资源编排系列之三-Kustomize篇
作者 艄公(杨京华) 雪尧(郭耀星) 这是咱们的《Kubernetes资源编排系列》的第三篇——Kustomize篇,在上篇(《Kubernetes资源编排系列之二: Helm篇》,可从文末链接中转)咱们见识到了Helm弱小的治理能力,然而Helm对于服务的定制仅限于预置变量,那么如果须要更多更灵便的YAML定制,有什么方法吗?于是本篇咱们来介绍一下Kustomize。 Kustomize是什么Kustomize是一套采纳合并思维,对Kubernetes原生配置进行治理的工具,应用无模板的计划定义利用配置。容许用户应用一系列的形容文件为根底,而后通过overlay的形式生成最终部署利用所需的形容文件。 Kustomize通过Base&Overlays形式保护不同环境的利用配置,在Overlay中形容差别来实现资源复用,治理的是Kubernetes原生YAML文件,不须要学习额定的 DSL 语法。 Kustomize是怎么做的Kustomize的文件构造如下: app├── base│ ├── deployment.yaml│ ├── service.yaml│ └── kustomization.yaml└── overlays ├── production │ └── kustomization.yaml ├── staging │ └── kustomization.yaml └── production-large └── kustomization.yamlapp/base/kustomization.yaml申明资源及要利用于它们的一些自定义,如增加一个通用的标签,其内容如下。kustomization 还提供了namePrefix、commonAnnoations、images 等配置项。 commonLabels: name: appresources:- deployment.yaml- service.yaml能够通过 kustomize build 命令来看残缺的配置,build进去的每个资源对象上都会存在通用的标签name: app。 kustomize build app/base # 构建kustomize build app/base | kubectl apply -f - # 构建并部署kubectl apply -k app/base # 1.14及更新的版本能够应用该命令间接部署app/overlays/staging/kustomization.yaml中能够为演示环境定义不同的名称前辍、标签,通过patch的计划将正本数设置为1 bases:- ../../basecommonLabels: env: stagingnamePrefix: staging-patches: - target: kind: Deployment name: app patch: | [ {"op":"replace","path":"/spec/replicas","value":1} ]app/overlays/production/kustomization.yaml中能够为生产环境定义不同的名称前辍、标签,通过patch的计划将正本数设置为2 ...