🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
**1. Helm 包管理工具** Helm 是一个 Kubernetes 的包管理工具,就像 Linux 下的包管理器,如 yum/apt 等,可以 很方便的将之前打包好的 yaml 文件部署到 kubernetes 上。 <br/> **2. Helm 三个概念** * helm:一个命令行客户端工具,类似`kubectl`,主要用于 Kubernetes 应用 chart 的创建、打包、发布和管理。 * Chart:应用描述,一系列用于描述 k8s 资源相关文件的集合,即一大堆`.yaml`文件的集合。 * Release:基于 Chart 的部署实体,一个 chart 被 Helm 运行后将会生成对应的一个 release,将在 k8s 中创建出真实运行的资源对象,即应用的版本管理。 **3. Helm v3 变化** 2019 年 11 月 13 日, Helm 团队发布 Helm v3 的第一个稳定版本。以后我们用的都是 Helm v3。 * 最明显的变化是 Tiller 的删除。 * Release 名称可以在不同命名空间重用。 * 支持将 Chart 推送至 Docker 镜像仓库中。 * 使用 JSONSchema 验证 chart values。 * ...其他。 :-: ![](https://img.kancloud.cn/f1/77/f1771d15e566ed320f8b6ed555680674_1407x797.png) Helm v2 → v3 架构变化 **4. 到底为什么要引入 Helm ?** 之前部署应用时都是跑`kubectl create/apply -f xxx.yaml`,这种方式当部署单一、少数几个应用的时候比较合适,但是当部署的应用达到几十个,每个应用都有一套`.yaml`文件,这时就需要维护大量的`.yaml`文件,而且版本管理也不方便。 <br/> 引入 Helm 可以解决如下问题: * 可以将大量`.yaml`文件作为一个整体进行管理。 * 实现`.yaml`的高效复用。其实我们发现很多的`.yaml`文件都是相似的结构,引入 Helm 就可以少写`.yaml`文件的内容了。 * 可以实现应用的版本管理。 >[info]所以引入 Helm 的原则就是:更方便、更高效的部署应用。