chart 目录结构 — Kubernetes(51)steemCreated with Sketch.

in kubernetes •  7 years ago 

chart 是 Helm 的应用打包格式。chart 由一系列文件组成,这些文件描述了 Kubernetes 部署应用时所需要的资源,比如 Service、Deployment、PersistentVolumeClaim、Secret、ConfigMap 等。

单个的 chart 可以非常简单,只用于部署一个服务,比如 Memcached;chart 也可以很复杂,部署整个应用,比如包含 HTTP Servers、 Database、消息中间件、cache 等。

chart 将这些文件放置在预定义的目录结构中,通常整个 chart 被打成 tar 包,而且标注上版本信息,便于 Helm 部署。

下面我们将详细讨论 chart 的目录结构以及包含的各类文件。

chart 目录结构

以前面 MySQL chart 为例。一旦安装了某个 chart,我们就可以在 ~/.helm/cache/archive 中找到 chart 的 tar 包。

800.png

解压后,MySQL chart 目录结构如下:

801.png

目录名就是 chart 的名字(不带版本信息),这里是 mysql,包含如下内容:

Chart.yaml
YAML 文件,描述 chart 的概要信息。

802.png

nameversion 是必填项,其他都是可选。

README.md
Markdown 格式的 README 文件,相当于 chart 的使用文档,此文件为可选。

803.png

LICENSE
文本文件,描述 chart 的许可信息,此文件为可选。

requirements.yaml
chart 可能依赖其他的 chart,这些依赖关系可通过 requirements.yaml 指定,比如:

804.png

在安装过程中,依赖的 chart 也会被一起安装。

values.yaml
chart 支持在安装的时根据参数进行定制化配置,而 values.yaml 则提供了这些配置参数的默认值。

805.png

templates 目录
各类 Kubernetes 资源的配置模板都放置在这里。Helm 会将 values.yaml 中的参数值注入到模板中生成标准的 YAML 配置文件。

模板是 chart 最重要的部分,也是 Helm 最强大的地方。模板增加了应用部署的灵活性,能够适用不同的环境,我们后面会详细讨论。

templates/NOTES.txt
chart 的简易使用文档,chart 安装成功后会显示此文档内容。

806.png

与模板一样,可以在 NOTE.txt 中插入配置参数,Helm 会动态注入参数值。

下一节我们详细讨论 chart 模板的用法。

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!