很多人都使用过Ubuntu下的ap-get或者CentOS下的yum, 这两者都是Linux系统下的包管理工具。采用apt-get/yum,应用开发者可以管理应用包之间的依赖关系,发布应用;用户则可以以简单的方式查找、安装、升级、卸载应用程序。
我们可以将Helm看作Kubernetes下的apt-get/yum。Helm是Deis (https://deis.com/) 开发的一个用于kubernetes的包管理器。每个包称为一个Chart,一个Chart是一个目录(一般情况下会将目录进行打包压缩,形成name-version.tgz格式的单一文件,方便传输和存储)。
对于应用发布者而言,可以通过Helm打包应用,管理应用依赖关系,管理应用版本并发布应用到软件仓库。
对于使用者而言,使用Helm后不用需要了解Kubernetes的Yaml语法并编写应用部署文件,可以通过Helm下载并在kubernetes上安装需要的应用。
Helm安装包官方地址:https://github.com/helm/helm/releases
本文地址(helm-v3.2.4):https://download.csdn.net/download/qq_19734597/12579439
一、Helm部署
Helm 的安装方式很多,这里采用二进制的方式安装。更多安装方法可以参考 Helm 的官方帮助文档。
方式一:使用官方提供的脚本一键安装
$ curl https://raw.githubusercontent.com/helm/helm/master/scripts/get > get_helm.sh
$ chmod 700 get_helm.sh
$ ./get_helm.sh
方式二:手动下载安装
#从官网下载最新版本的二进制安装包到本地:https://github.com/helm/helm/releases
$ wget https://get.helm.sh/helm-v3.2.4-linux-amd64.tar.gz
$ tar -zxvf helm-v3.2.4-linux-amd64.tar.gz
$ mv linux-amd64/helm /usr/local/bin/helm
通过上述两种方式其中之一安装完成后,更换国内(阿里)Charts源,命令如下:
$ helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
添加成功后,使用如下命令可以列出可以安装的charts :
$ helm search repo stable
NAME CHART VERSION APP VERSION DESCRIPTION
stable/acs-engine-autoscaler 2.1.3 2.1.1 Scales worker nodes within agent pools
stable/aerospike 0.1.7 v3.14.1.2 A Helm chart for Aerospike in Kubernetes
stable/anchore-engine 0.1.3 0.1.6 Anchore container analysis and policy evaluatio...
stable/artifactory 7.0.3 5.8.4 Universal Repository Manager supporting all maj...
... ...
二、Helm管理
1、查看下载源
$ helm repo list
2、查询要安装的chart
$ helm search repo tomcat
3、安装chart
chart安装有两种方式,分别是在线安装和资源文件安装,以下以安装tomcat为例,在线安装命令如下:
$ helm install my-tomcat aliyuncs/tomcat
资源文件安装,命令如下:
$ helm pull aliyuncs/tomcat
$ tar -zxvf tomcat-6.2.3.tgz
$ cd tomcat
$ helm install my-tomcat .
如果要指定命名空间部署,则执行以下命令安装:
$ helm install my-tomcat -n oas-dev .
4、修改chart配置
修改chart配置有三种方式:
1)通过 --set参数 修改chart的values.yaml文件中的默认配置,比如chart的values.yaml 中有下面的配置:
resources:
limits:
cpu: 2
通过以下方式就可以将上面的 cpu 值改为 1,命令如下:
$ helm install --set resources.limits.cpu=1 cnblogs-web .
这样我们就成功修改了chart的默认配置。
2)如果应用还没有部署,则通过修改helm的配置文件的方式,修改chart配置:
首先下载chart配置文件到本地,命令如下:
$ helm pull aliyuncs/tomcat
然后修改chart的values.yaml文件,命令如下:
$ cd tomcat
$ vim values.yaml
修改完成后保存退出,执行以下命令部署安装tomcat,命令如下:
$ helm install my-tomcat -n oas-dev .
部署完成后,执行以下命令查看当前deployment状态,命令如下:
$ kubectl edit deployment my-tomcat -n oas-dev
发现tomcat服务的修改后配置已生效。
3)如果应用已经部署好了,则通过 kubectl edit 命令来修改最直接有效:
通过 kubectl edit deployment my-tomcat -n oas-dev,即可在线编辑名为 my-tomcat 的deployment,操作方法和vim编辑文本文件一样。
编辑完后,保存退出会立即生效,如下图,可见旧pod正在被销毁,新pod启动中,等pod创建和启动成功后再次查看发现配置生效。
4、卸载chart
$ helm delete my-tomcat -n oas-dev
5、添加chart源
$ helm repo add aliyuncs https://kubernetes.oss-cn-shenzhen.aliyuncs.com/charts
6、删除chart源
$ helm repo remove aliyuncs
7、更新chart源
$ helm repo update
到此 包管理工具(Helm)介绍完成。