Helm是Kubernetes的包管理器,主要用来管理 Charts。Helm Chart是用来封装Kubernetes原生应用程序的一系列YAML文件。可以在你部署应用的时候自定义应用程序的一些Metadata,以便于应用程序的分发。对于应用发布者而言,可以通过Helm打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。对于使用者而言,使用Helm后不用需要编写复杂的应用部署文件,可以以简单的方式在Kubernetes上查找、安装、升级、回滚、卸载应用程序。Helm和Kubernetes之间的关系可以如下类比。
- Helm <–> Kubernetes
- Apt <–> Ubuntu
- Yum <–> CentOS
- Pip <–> Python
下图展示了Helm的整体架构。
Kubernetes的应用编排存在着一些问题,Helm可以用来解决这些问题。
-
管理、编辑与更新大量的Kubernetes配置文件
-
部署一个含有大量配置文件的复杂Kubernetes应用
-
分享和复用Kubernetes配置和应用
-
参数化配置模板支持多个环境
-
管理应用的发布:回滚、diff 和查看发布历史</