minikube集群上部署helm
Helm是Kubernetes中的包(chart)管理工具,通过helm可以:
- 查找最受欢迎的char
- 把自己的应用以chart的形式分享出去
- 为自己的应用创建可复制形式的构建
- 更便捷的管理k8s的mainfest
- 版本管理
Helm与k8s的关系可以类比成apt和ubuntu,或者yum与centos的关系,Helm是C/S架构的
- client: Helm
- Server: Tiller
Helm
Helm是终端用户使用的命令行工具,负责:
- 本地的chart开发
- 管理repo(仓库)
- 与tiller通信
- 发送将要安装的chart
- 请求release信息
- 请求升级release或卸载
Tiller
Tiller是运行在k8s集群内的server,与helm互动通信,并与k8s api通信:
- 响应helm的请求
- 将chart根据相应配置构建release
- 将chart安装到k8s中,并跟踪后续的release
- 与k8s互动升级或卸载chart
安装
官方文档: https://github.com/kubernetes/helm/blob/master/docs/install.md
我的minikube依旧是0.26.0,k8s版本是1.10.0,helm建议用2.8.2的版本,其他几个版本试了下都有些问题。
Install helm client
首先安装helm的客户端:
下载地址: https://github.com/kubernetes/helm/releases/tag/v2.8.2
下载的就是helm的可执行文件了,所以不管linux还是windows,添加到PATH环境变量就可以用了。
1 | $ tar -zxvf helm-v2.8.2-linux-amd64.tar.gz |
安装Tiller
执行命令:1
$ helm init
就可以完成安装了,会在k8s集群中创建一个tiller-deploy
的deployment,启动tiller的服务。当然会用的tiller的镜像,tiller镜像如果拉取不到可以事先在minikube的vm中拉取,方法和之前其他镜像的方法一样,在ali的容器镜像服务中中转,也可以直接用我下面的:1
2$ docker pull registry.cn-hangzhou.aliyuncs.com/dck8s/tiller:v2.8.2
$ docker tag registry.cn-hangzhou.aliyuncs.com/dck8s/tiller:v2.8.2 gcr.io/kubernetes-helm/tiller:v2.8.2
也可以使用国内的helm repo进行安装,比如使用ali的repo:1
$ helm init --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
验证
Tiller启动后执行:1
2
3$ helm version
Client: &version.Version{SemVer:"v2.8.2", GitCommit:"a80231648a1473929271764b920a8e346f6de844", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.8.2", GitCommit:"a80231648a1473929271764b920a8e346f6de844", GitTreeState:"clean"}
可以看到客户端和服务端的版本信息,执行helm ls以及helm repo list,分别查看当前的release以及repo,没有报错那helm基本就运行正常了。后面可以使用helm来安装chart了:)