相当于yum和apt,同类产品kustomize 1.14版本后自带。
变量值的获取和怎么修改这些变量值。

1. Helm是什么?

The package manager for kubernets
Helm 为一个kubernets平台的包管理器工具。(注意同类型的工具:kustomize已经集成在Kubernets>1.14)。

2. 为什么需要Helm?

  1. Helm类似于CentOS平台的yum,使用helm可以快速的安装应用到Kubernets集群中。
  2. Helm定义了如何按照规则打包Kubernets需要部署的资源,通过YAML的配置模板,将需要修改的内容变为属性值。
  3. 除了部署应用,应用的存储和分发,helm提供了repo存储应用包,可以远程访问helm仓库进行资源的部署操作。

3. Helm术语表

  1. Chart:为使用helm打包一个完整应用部署包,包含运行该应用的所有资源文件(yaml或其他文件)。
  2. Chart.yaml:Chart的信息说明被存储在一个特定文件Chart.yaml。每个Chart都必须有这个文件。
  3. Repo/Chart Repository(仓库):用于存储和分享打包好的应用。
  4. Release(发布版本):应用在k8s中运行的一个实例。一个Chart可以在一个集群中多次安装,每次安装都会有一个新的实例,多个实例需要有不同的namespace。
  5. Values(Values文件, values.yaml)

Values 提供了一种使用你自己信息覆盖模板默认值的方式。
Helm Chart是“参数化的”,这意味着chart开发者可以在安装是显式配置。比如说,chart可以暴露username字段,允许用户为服务设置一个用户名。
这些可以暴露的变量在Helm的术语中被称为 values。
Values 可以在 helm install时和helm upgrade时设置,直接把它们传值进来,也可以使用values.yaml文件设置。

4. Helm架构

服务端:Helm Library(与Kuberents api进行交互,接收客户端指令进行部署,更新,删除和版本管理)
客户端:Helm Client(命令行客户端helm cli)

helm2与helm3的区别:

helm2版本,在集群中运行了服务tiller。
helm3版本删除了Tiller,所有的kubernets api的操作都使用kubectl进行管理。

5. 安装方法

源码安装

使用helm安装wordpress

  1. helm repo add bitnami https://charts.bitnami.com/bitnami
  2. helm install my-release bitnami/<chart> # Helm 3
  3. helm install --name my-release bitnami/<chart> # Helm 2

Chart

  • 日常release
  • 语法release
  • 生产release

每个Chart可以

helm list
helm repo list
查看release全部版本历史记录
helm history nginx

helm diff