什么是 Kubernetes Helm?

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,需要以下步骤:

  1. 初始化 Helm,会安装 Tiller。
  2. 将 chart 打包为 .tgz 文件,或者发布到 Helm Hub 等仓库。
  3. 添加 chart 仓库,以便查找和安装 chart。
  4. 使用 helm search 搜索我们需要的 chart。
  5. 使用 helm install 安装 chart,此时会调用 Tiller 进行部署。
  6. helm list 可以查看已安装的 chart。
  7. 使用 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 主要有以下作用:

  1. 简化 Kubernetes 应用部署。
  2. 版本管理:可以安装不同版本的 chart。
  3. 可重用:一个 chart 可以在不同的集群多次使用。
  4. 自定义模板:chart 包含模板,在安装时渲染。
  5. 依赖管理:chart 可以指定依赖关系。

Helm 由两部分组成:

  • Helm:命令行工具,用于 chart 管理与部署。
  • Tiller:集群组件,负责 chart 部署等操作。