介绍
Helm 是一个 Kubernetes 的包管理工具,类似 Linux 的包管理器,如RedHat系的yum、Debian的apt,可以很方便的将之前打包好的 yaml 文件部署到 Kubernetes 上。Helm主要解决以下问题:1、把yaml作为一个整体管理。2、实现yaml的高效复用。3、实现应用级别的版本管理。
当前 Helm 已经升级到V3版本,相比于V2版本主要变化如下:
1、 最明显的变化是删除了 Tiller 。
2、 Release 名称可以在不同命名空间重用。
3、 支持将 Chart 推送至 Docker 镜像仓库中。
4、 使用 JSONSchema 验证 chart values。
Helm 有3个重要概念:
1、helm: 一个命令行客户端工具,主要用于 Kubernetes 应用 chart 的创建、 打包、 发布和管理。
2、Chart:应用描述,一系列用于描述 k8s 资源相关文件的集合。
3、Release:基于 Chart 的部署实体,一个 chart 被 Helm 运行后将会生成对应的一个release;release是在 k8s 中创建出真实运行的资源对象。
下图是 Helm V2 与 Helm V3 的架构图对比:

安装
可以直接下载二进制文件 https://github.com/helm/helm/releases linux amd64
解压后 把helm 复制到bin目录 mv linux-amd64/helm /usr/local/bin/helm
如同yum、apt拥有仓库一样,Helm也有仓库,使用Helm默认仓库下载Chart比较慢,可以增加微软、阿里的仓库。
添加微软Chart仓库
helm repo add stable http://mirror.azure.cn/kubernetes/charts
使用
##查看 可用chart
$ helm search repo stable
##安装mysql
$ helm repo update # Make sure we get the latest list of charts
$ helm install stable/mysql --generate-name ##generate-name就是本地mysql的名字
随机生成,
Released smiling-penguin
$ helm install wujy_mysql stable/mysql #也可以自己定义名字
##查看已安装的released
$ helm ls
NAME VERSION UPDATED STATUS CHART
smiling-penguin 1 Wed Sep 28 12:59:46 2016 DEPLOYED mysql-0.1.0
##卸载一个release
$ helm uninstall smiling-penguin
Removed smiling-penguin
常用命令
查找 helm search <hub/repo> CHARTNAME
安装 helm install --name mem1 stable/memcached
获取状态信息 helm status mem1
列出 helm list [-a]
下载 helm get stable/redis
创建 helm create CHARTNAME
语法检测 helm lint CHARTNAME
打包 helm package CHARTNAME
显示状态 helm status NAME