chart 目錄結構 - 每天5分鐘玩轉 Docker 容器技術(164)

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 包。

解壓後,MySQL chart 目錄結構如下:

目錄名就是 chart 的名字(不帶版本信息),這裏是 mysql,包含如下內容:

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

name 和 version 是必填項,其他都是可選。

README.md 
Markdown 格式的 README 文件,相當於 chart 的使用文檔,此文件爲可選。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章