Helm chart是创建一个应用实例的必要配置组,也就是一堆Spec。配置信息被归类为模版(Template)和值(Value),这些信息经过渲染最终生成对象。所有配置信息可以被打包进一个可以发布的对象中,一个release就是一个有特定配置的chart的实例。
Helm分为Helm client和Helm library两部分。
Helm client
- 本地chart开发
- 管理repository
- 管理release
- 与helm library交互,发送需要安装的chart,请求升级或者卸载存在的release
Helm library
- 负责与APIServer交互,基于chart和configuration创建一个release
- 把chart安装进kubernetes,并提供相应的release对象
- 升级和卸载
- Helm采用Kubernetes存储所有配置信息,无需自己的数据库
接下来通过实际例子看看如何使用helm部署应用,首先是下载安装helm,helm安装成功后,创建一个名叫demo的chart,如下图所示:
默认会生成两个文件Chart.yaml和values.yaml,还有两个文件夹charts、templates。
其中Templates中包含了一下典型对象的yaml文件,当template和values中定义的变量值相结合的时候,就生成了有效的kubernetes manifest文件。实际项目中结合项目情况编写template中的yaml文件和定义values.yaml中的值,将配置类信息例如image version等放到values.yaml中统一管理。
helm install命令安装上面创建的demo chart,可以看到启动了一个新的pod,因为template里面默认定义了deployment文件。
除安装命令外,常用的还有如下命令:
helm repo list
helm repo add xx
helm repo upgrade
已经安装了的release,还可以进行查看和清理
helm list
helm uninstall releaseName
以上就是对helm的简要介绍,helm使用非常简单,如果要了解更多信息,可查看官网资料。