chart 是 Helm 的应用打包格式。chart 由一系列文件组成,这些文件描述了 Kubernetes 部署应用时所须要的资源,好比 Service、Deployment、PersistentVolumeClaim、Secret、ConfigMap 等。html
单个的 chart 能够很是简单,只用于部署一个服务,好比 Memcached;chart 也能够很复杂,部署整个应用,好比包含 HTTP Servers、 Database、消息中间件、cache 等。mysql
chart 将这些文件放置在预约义的目录结构中,一般整个 chart 被打成 tar 包,并且标注上版本信息,便于 Helm 部署。sql
下面咱们将详细讨论 chart 的目录结构以及包含的各种文件。ui
之前面 MySQL chart 为例。一旦安装了某个 chart,咱们就能够在 ~/.helm/cache/archive 中找到 chart 的 tar 包。spa
解压后,MySQL chart 目录结构以下:3d
目录名就是 chart 的名字(不带版本信息),这里是 mysql
,包含以下内容:code
Chart.yaml
YAML 文件,描述 chart 的概要信息。htm
name
和 version
是必填项,其余都是可选。中间件
README.md
Markdown 格式的 README 文件,至关于 chart 的使用文档,此文件为可选。blog
LICENSE
文本文件,描述 chart 的许可信息,此文件为可选。
requirements.yaml
chart 可能依赖其余的 chart,这些依赖关系可经过 requirements.yaml 指定,好比:
在安装过程当中,依赖的 chart 也会被一块儿安装。
values.yaml
chart 支持在安装的时根据参数进行定制化配置,而 values.yaml 则提供了这些配置参数的默认值。
templates 目录
各种 Kubernetes 资源的配置模板都放置在这里。Helm 会将 values.yaml 中的参数值注入到模板中生成标准的 YAML 配置文件。
模板是 chart 最重要的部分,也是 Helm 最强大的地方。模板增长了应用部署的灵活性,可以适用不一样的环境,咱们后面会详细讨论。
templates/NOTES.txt
chart 的简易使用文档,chart 安装成功后会显示此文档内容。
与模板同样,能够在 NOTE.txt 中插入配置参数,Helm 会动态注入参数值。
下一节咱们详细讨论 chart 模板的用法。
书籍:
1.《天天5分钟玩转Kubernetes》
https://item.jd.com/26225745440.html
2.《天天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
3.《天天5分钟玩转OpenStack》
https://item.jd.com/12086376.html