基于k8s 1.10集群环境Helm安装

简介

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

参考链接:https://github.com/kubernetes/helm/issues/3460

猜你喜欢

转载自blog.csdn.net/lusyoe/article/details/80228571