Helm 是为 kubernetes 提供发现,共享和构建应用的最佳方式。
Helm 可帮助您管理 Kubernetes应用程序 - Helm Charts 可帮助您定义,安装和升级最复杂的 Kubernetes应用程序。
最新版本的 Helm 由 CNCF 维护 - 与微软,谷歌,Bitnami 和 Helm贡献者社区合作。
首先在原来项目中都是基于yaml文件来进行部署发布的,而目前项目大部分微服务化或者模块化,会分成很多个组件来部署,每个组件可能对应一个deployment.yaml
,一个service.yaml
,一个Ingress.yaml
还可能存在各种依赖关系,这样一个项目如果有5个组件,很可能就有15个不同的yaml文件,这些yaml分散存放,如果某天进行项目恢复的话,很难知道部署顺序,依赖关系等,而所有这些包括
都可以通过helm来进行解决。
Helm 可以理解为 Kubernetes 的包管理工具,可以方便地发现、共享和使用为Kubernetes构建的应用,它包含几个基本概念
Chart
:一个 Helm 包,其中包含了运行一个应用所需要的镜像、依赖和资源定义等,还可能包含 Kubernetes 集群中的服务定义。
Release
: 在 Kubernetes 集群上运行的 Chart 的一个实例。在同一个集群上,一个 Chart 可以安装很多次。每次安装都会创建一个新的 release。例如一个 MySQL Chart,如果想在服务器上运行两个数据库,就可以把这个 Chart 安装两次。每次安装都会生成自己的 Release,会有自己的 Release 名称。
Repository
:用于发布和存储 Chart 的仓库。
config
:创建发布对象的chart的配置信息。