简介
Helm 是 Kubernetes 官方支持的包管理工具,可以方便地发现、共享和使用为Kubernetes构建的应用。
能够很便捷的对k8s应用进行版本管理控制。
安装
这里使用目前最新的版本2.9.0
,可以直接通过官方地址下载。
官方下载速度较慢,这里我也上传了一个包,方面大家使用:下载地址。
安装也分为两种,k8s集群启用了RBAC权限控制和没有启用权限控制。
没有启用权限控制
当没有启用权限控制时,安装部署过程很简单,解压后直接执行helm init
即可。
但是默认helm
会去官方仓库下载服务端tiller镜像,地址为:gcr.io/kubernetes-helm/tiller:v2.9.0
。
由于某种众所周知的原因,gcr.io
这个仓库是无法使用的,这里我也通过阿里云容器服务,上传了一个镜像供大家使用。
只要在我们初始化的时候,指定使用的tiller镜像地址即可,如下:
helm init --tiller-image registry.cn-hangzhou.aliyuncs.com/luhaoyuan/tiller:v2.9.0
启用RBAC权限控制
如果启用了权限控制,那就麻烦一点了,需要我们创建对应的serviceaccount,否则以下报错:
list: failed to list: Get http://localhost:8080/api/v1/namespaces/kube-system/configmaps?
labelSelector=OWNER%3DTILLER: dial tcp 127.0.0.1:8080: connect: connection refused
执行helm ls
的时候报下面这种错误提示:
Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default"
cannot list configmaps in the namespace "kube-system"
好了,我们开始安装并授予权限吧,依次执行以下命令:
# 在kube-system命名空间中创建tiller账户
kubectl create serviceaccount --namespace kube-system tiller
# 创建角色并授予cluster-admin权限
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
# 指定账户进行初始化,别忘了还要指定tiller镜像哦
helm init --service-account tiller --tiller-image registry.cn-hangzhou.aliyuncs.com/luhaoyuan/tiller:v2.9.0
# 最后验证一下,是否有报错,执行以下命令没报错则表示成功了
helm ls