helm是kubernetes的包管理工具,可以将应用程序打包成一个可复用的单元,方便在集群中部署和管理。 helm的核心是chart,chart是应用程序的打包文件,包含应用程序的配置、部署文件和依赖关系。
特点:
- 标准化与可重复性:任何环境(开发、测试、生产)的部署都可以通过同一套Chart和不同的配置文件来完成,保证环境的一致性和部署的可重复性。一个
helm upgrade命令取代数十个kubectl apply/kubectl exec命令 - 版本控制(支持安装、升级、回滚):Helm Chart本身可以像代码一样被版本化,并存储在Chart仓库(如Artifact Hub或者私有仓库)中。CI/CD流水线可以准确地拉去指定版本的Chart进行部署或回滚
- 环境隔离与配置管理:Helm允许为不同的环境使用不同的values.yaml文件。例如可以通过
-f values-production.yaml参数指定生产环境配置文件,该文件包含了生产环境的数据库密码、资源限制(CPU/Memory)和副本数等。