容器 & 服务:Helm Charts 配置文件分析
系列文章:
容器 & 服务:Helm Charts(三)K8s 集群信息
一 简介
chart 是 Helm 的应用打包格式。chart 由一系列文件组成,这些文件描述了 K8s 部署应用时所需要的资源,比如 Service、Deployment、PersistentVolumeClaim、Secret、ConfigMap 等。
chart 可繁可简,即可以只用于部署一个单独的服务,例如 mysql、nginx 等等,也可以用于部署整个应用,例如由 HTTP 服务、数据库、缓存、中间件等共同构成的复杂应用。
在我们的应用中,chart 的整个目录通常会被打成压缩包(tgz or tar 等),并带有版本等信息,用于 Helm 执行部署。
二 chart 示例
如下,test-0.1-1862.tgz 就是一个 chart 的产出压缩包:
我们把这个文件解压后。得到目录内容如下图所示:
其中包含了 configmap,deployment,service,以及 chart 和 values.yaml 配置。包含了从依赖服务,到所需变量,以及部署和 service 相关的配置。
更完整的目录组成如下:
•Chart.yaml: 包括仓库地址,版本信息等,描述 chart 的概要信息;
•values.yaml: chart 支持在安装的时根据参数进行定制化配置,而 values.yaml 则提供了这些配置参数的默认值;
•values.schema.json 验证 values.yaml
•charts: 依赖其他包的 charts 文件
•requirements.yaml: 依赖的 charts(v1 api)
•requirements.lock v1 api 具体依赖的版本
•README.md: 开发人员自己阅读的文件
•LICENSE:版权文件
•crd 目录,存放 crd 资源文件
templates 目录 各类 Kubernetes 资源的配置模板都放置在这里。Helm 会将 values.yaml 中的参数值注入到模板中生成标准的 YAML 配置文件。
模板是 chart 最重要的部分,也是 Helm 最强大的地方。模板增加了应用部署的灵活性,能够适用不同的环境
–deployment.yaml 创建 k8s 资源的 yaml 文件
另一个例子,mysql 的 chart 目录结构:
版权声明: 本文为 InfoQ 作者【程序员架构进阶】的原创文章。
原文链接:【http://xie.infoq.cn/article/325ee5e066f508687a2cd3b78】。文章转载请联系作者。
评论