helm

介绍

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 的架构图对比:

V2版本的架构中,Tiller在Kubernetes集群中,Helm Client发请求给Tiller需要经过RBAC认证。而V3版本是Helm通过kubeconfig连接kube-apiserver,避免了使用者去配置RBAC权限。

安装

可以直接下载二进制文件 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

Leave a Reply

Your email address will not be published. Required fields are marked *