写点什么

容器 & 服务:Helm Charts 配置文件分析

  • 2021 年 11 月 10 日
  • 本文字数:757 字

    阅读完需:约 2 分钟

容器 & 服务:Helm Charts配置文件分析

系列文章:

容器 & 服务:Helm Charts(一)

容器 & 服务: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 目录结构:


发布于: 2021 年 11 月 10 日阅读数: 7
用户头像

磨炼中成长,痛苦中前行 2017.10.22 加入

微信公众号【程序员架构进阶】。多年项目实践,架构设计经验。曲折中向前,分享经验和教训

评论

发布
暂无评论
容器 & 服务:Helm Charts配置文件分析