相当于yum和apt,同类产品kustomize 1.14版本后自带。
变量值的获取和怎么修改这些变量值。
1. Helm是什么?
The package manager for kubernets
Helm 为一个kubernets平台的包管理器工具。(注意同类型的工具:kustomize已经集成在Kubernets>1.14)。
2. 为什么需要Helm?
- Helm类似于CentOS平台的yum,使用helm可以快速的安装应用到Kubernets集群中。
- Helm定义了如何按照规则打包Kubernets需要部署的资源,通过YAML的配置模板,将需要修改的内容变为属性值。
- 除了部署应用,应用的存储和分发,helm提供了repo存储应用包,可以远程访问helm仓库进行资源的部署操作。
3. Helm术语表
- Chart:为使用helm打包一个完整应用部署包,包含运行该应用的所有资源文件(yaml或其他文件)。
- Chart.yaml:Chart的信息说明被存储在一个特定文件Chart.yaml。每个Chart都必须有这个文件。
- Repo/Chart Repository(仓库):用于存储和分享打包好的应用。
- Release(发布版本):应用在k8s中运行的一个实例。一个Chart可以在一个集群中多次安装,每次安装都会有一个新的实例,多个实例需要有不同的namespace。
- 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
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-release bitnami/<chart> # Helm 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