Helm 是 Kubernetes 的包管理工具。它可用于:
- 打包 Kubernetes 清单文件(chart)。
- 发布 chart 到 chart 仓库(如 Helm Hub)。
- 从 chart 仓库安装和卸载 chart。
- 管理已安装的 chart(称为 revision)。
Helm 的主要特点为:
- 简化 Kubernetes 应用部署:可以打包、共享和管理复杂的 Kubernetes 应用。
- 版本管理:chart 可以有不同的版本,我们可以选择安装不同的版本。
- 可重用:一个 chart 可以在不同的 Kubernetes 集群中多个次使用。
- 自定义模板:chart 可以包含模板文件,在安装 chart 时会自动渲染。
- 依赖管理:一个 chart 可以作为另一个 chart 的依赖。
Helm 包含两部分:
- Helm:命令行工具,用于 chart 打包、仓库管理、chart 安装等。
- Tiller:集群服务端组件,负责 chart 安装、管理等操作。
要使用 Helm,需要以下步骤:
- 初始化 Helm,会安装 Tiller。
- 将 chart 打包为 .tgz 文件,或者发布到 Helm Hub 等仓库。
- 添加 chart 仓库,以便查找和安装 chart。
- 使用 helm search 搜索我们需要的 chart。
- 使用 helm install 安装 chart,此时会调用 Tiller 进行部署。
- helm list 可以查看已安装的 chart。
- 使用 helm uninstall 卸载 chart。
例如,我们可以打包一个简单的 Nginx chart:
nginx/
Chart.yaml
values.yaml
templates/
deployment.yaml
service.yaml
then pack it using:
helm package nginx
This will generate a nginx-0.1.0.tgz chart archive.
We can install this chart using:
helm install nginx-0.1.0.tgz
This will have Tiller to deploy the Nginx Deployment and Service defined in the templates.
所以总结来说,Helm 主要有以下作用:
- 简化 Kubernetes 应用部署。
- 版本管理:可以安装不同版本的 chart。
- 可重用:一个 chart 可以在不同的集群多次使用。
- 自定义模板:chart 包含模板,在安装时渲染。
- 依赖管理:chart 可以指定依赖关系。
Helm 由两部分组成:
- Helm:命令行工具,用于 chart 管理与部署。
- Tiller:集群组件,负责 chart 部署等操作。