概念:
helm把一系列复杂的有状态和无状态服务的部署封装起来(实际上就是对yaml文件的组织),然后你可以暴露出一些自定义参数信息供用户选择,这样部署就会变得简单很多。有点类似ansible,salt的yaml文件差不多。Helm相当于kubernetes环境下的yum包管理工具

组件:
Helm :是一个命令行下的客户端工具

Tiller: 是 Helm 的服务端,部署在 Kubernetes 集群中

Chart Helm :的软件包,类似YUM 的 RPM 包

Repoistory Helm 的软件仓库:Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 软件包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository

Release 使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release

helm安装

wget https://get.helm.sh/helm-v2.14.3-linux-amd64.tar.gz

k8s中Helm安装使用(15)_第1张图片
我们的客户端helm已经安装完成了,但是server端的tiller没有安装哈

================================================================

Tiller安装

创建tiller相关的rbac
k8s中Helm安装使用(15)_第2张图片

k8s中Helm安装使用(15)
完成之后初始化
helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.3 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
这里要指定阿里云的源,不然无法的下载会失败哈,大家懂得
k8s中Helm安装使用(15)_第3张图片
说明tiller已经创建成功了

=========================================================

创建了tiller的 ServceAccount 后还没完,因为我们的 Tiller 之前已经就部署成功了,而且是没有指定 ServiceAccount 的,所以我们需要给 Tiller 打上一个 ServiceAccount 的补丁:
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

k8s中Helm安装使用(15)

简单的创建一个测试一下
k8s中Helm安装使用(15)
k8s中Helm安装使用(15)_第4张图片

修改nginx镜像
k8s中Helm安装使用(15)_第5张图片
更改 value.yaml 文件下面的 image tag 即可,将默认的 stable 更改为 1.7.9,为了测试方便,我们把 Service 的类型也改成 NodePort

现在我们来尝试安装下这个 Chart :
k8s中Helm安装使用(15)_第6张图片

是不是和salt和ansible功能差不多呢

k8s中Helm安装使用(15)_第7张图片

======================================
查看release
k8s中Helm安装使用(15)

打包chart

k8s中Helm安装使用(15)_第8张图片

删除release
k8s中Helm安装使用(15)_第9张图片

===========================================

Helm 有三个重要概念:

chart:包含了创建Kubernetes的一个应用实例的必要信息
config:包含了应用发布配置信息
release:是一个 chart 及其配置的一个运行实例
现在是不是好理解点了,结合操作