华为云上安装helm
Helm是Kubernetes生态系统中的一个软件包管理工具.
对于应用发布者而言,可以通过Helm打包应用,管理应用依赖关系,管理应用版本并发布应用到软件仓库。
除此以外,Helm还提供了kubernetes上的软件部署,删除,升级,回滚应用的强大功能。
Helm概念
- Helm: Kubernetes的应用打包工具,也是命令行工具的名称。
- Tiller: Helm的服务端,部署在Kubernetes集群中,用于处理Helm的相关命令。
- Chart: Helm的打包格式,内部包含了一组相关的kubernetes资源。
- Repoistory: Helm的软件仓库,repository本质上是一个web服务器,该服务器保存了chart软件包以供下载,并有提供一个该repository的chart包的清单文件以供查询。在使用时,Helm可以对接多个不同的Repository。
- Release: 使用Helm install命令在Kubernetes集群中安装的Chart称为Release。
下图展示这个概念之间的联系:
华为云上安装
Helm安装
从Github的发布页或者GoogleCloud下载
helm v2.11版本在K8s v1.11.7测试通过
上传到客户端节点后, 解压并将文件拷贝到系统路径之中
1 | tar -xzvf helm-v2.11.0-linux-amd64.tar.gz |
Helm初始化
创建一个tiller的service_account: tiller_service_account.yaml
1 | apiVersion: v1 |
创建角色
1 | kubectl create -f tiller_service_account.yaml |
Helm初始化
1 | helm init --service-account tiller --skip-refresh |
docker tag registry.cn-hangzhou.aliyuncs.com/acs/tiller:v2.11.0 swr.cn-north-1.myhuaweicloud.com/hzw/tiller:v2.11.0
执行helm version
查看结果, 发现Error: could not find a ready tiller pod
错误
查找原因
1 | kubectl get pod --all-namespaces|grep tiller |
发现问题还是Error: ImagePullBackOff
问题和之前一样, 华为云的k8s拉取镜像需要imagePullSecret
编辑tiller-deploy
1 | kubectl edit deploy tiller-deploy -n kube-system |
将以下内容加入到对应的模块之中
1 | spec: |
过段时间之后,发现tiller已经正常
1 | [root@/home]# kubectl get pod -n kube-system|grep tiller |
Helm安装和初始化工作已经完成
1 | [root@gpu-01-client volcano]# helm version |