Helm简介
Helm is the best way to find, share, and use software built for Kubernetes.
helm是k8s的包管理工具,就像yum之于centos,apt之于ubuntu。不同的是,yum管理的是软件包,helm管理的是配置好的k8s资源包。这种配置好的k8s资源包,按照chart的包格式进行包装。以下是wordpress的chart包结构:
1 | wordpress/ |
Helm2包括两个组件:客户端(Helm Client)和服务端(Tiller)。Helm发送指令给Tiller(gRPC协议),Tiller主要用于管理各种应用发布的版本,并且与k8s进行交互。
不过,在 Helm3 中 Tiller 被移除掉了,Helm直接与k8s进行交互,版本相关的数据存储在k8s中。
Helm3中命令也发生了变化:
- helm delete 更名为 helm uninstall
- helm inspect 更名为 helm show
- helm fetch 更名为 helm pull
旧的命令依然可以使用。
参考文档:
体验Helm
越来越喜欢用katacoda来学习新技能,Helm也可以在上面通过实践学习。
Helm相关教程:
安装Helm
参考 Installing Helm,安装helm。
macos
1 | brew install helm |
linux
1、查找需要的release版本
2、下载并安装
1 | wget https://get.helm.sh/helm-v3.2.4-linux-amd64.tar.gz |
Helm常用命令
使用条件
helm命令使用条件:
- 安装配置好k8s集群
- 安装配置好kubectl,可以正常访问k8s
- 安装好helm
helm和kubectl一样,可以在一台机器上管理多个k8s集群,使用kubectl config use-context xxx
切换一下集群即可。
查看帮助
1 | helm -h |
添加chart仓库
1 | # helm repo add stable https://kubernetes-charts.storage.googleapis.com/ |
查看chart列表
1 | helm search repo stable |
查看chart详情
1 | helm show chart stable/mysql |
安装软件
以安装mysql为例(适用于 k8s v1.16- 版本)
1 | # helm install mysql-test stable/mysql |
安装指定chart版本的mysql
1 | helm search repo stable/mysql -l |
k8s v1.16+ 版本,extensions/v1beta1 API version中Deployment资源已经被移除了,因此这里的mysql chart仅适用于1.16以下的版本。详情参考Deprecated APIs Removed In 1.16: Here’s What You Need To Know
如果想要在 k8s v1.16+ 版本中使用这个mysql chart,请参考《K8S中安装Mysql》一文中的【helm安装单节点mysql(5.7.x)】一节。
查看k8s中安装的chart
1 | helm list |
卸载软件
以卸载mysql为例
1 | helm ls |
卸载指定namespace下的软件
1 | helm ls -A |
修改默认配置
方法一:下载chart(推荐)
下载chart,修改配置文件。
这种方法是最推荐的方法,原因有二:
- 有时不止需要修改values.yaml,还需要修改其他yaml文件
- 安装之后有完整留档,方便以后的配置调整和升级
以修改mysql的默认配置为例:
1、获取chart并解压
1 | helm fetch stable/mysql |
2、编辑values
1 | cd mysql |
配置项改为我们需要的配置。
3、执行安装
在values所在目录下,执行命令
1 | kubectl create ns mysql |
方法二:导出配置文件
导出配置文件,修改配置文件
以修改mysql的默认配置为例:
1、获取默认values
1 | helm show values stable/mysql > mysql-values.yaml |
2、编辑values
编辑mysql-values.yaml
3、执行安装
1 | kubectl create ns mysql |
方法三:执行命令时指定配置
执行helm install
命令时,指定配置
以修改mysql的默认配置为例:
1 | helm install mysql stable/mysql -n mysql --set persistence.size=10Gi |
修改配置后更新
1 | helm upgrade mysql stable/mysql -f mysql-values.yaml -n mysql |
创建chart并打包
1、创建chart
1 | helm create wecms |
2、验证chart
1 | helm lint |
3、打包chart
1 | helm package wecms |
4、使用chart安装
1 | helm install wecms ./wecms-0.1.0.tgz |