- 1.安装helm客户端
- 方法一:通过下载脚本安装
- 方法二:下载相应版本解压并移至目录
- 2.安装tiller服务端
- 3. 验证安装
- 4.我在安装时遇到的问题
以下两个通过“一键安装下载”的是helm3版本,helm2与helm3有着很大的不同下载时要特别留意
这个可以自动拉取最新的helm版本并在本地安装,这个脚本内良好的文档会让你知道你脚本都做了什么 [root@master ~]# curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 [root@master ~]# chmod 700 get_helm.sh [root@master ~]# ./get_helm.sh
如果想直接运行安装:
[root@master ~]# curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
以上两种方法任选其一
方法二:下载相应版本解压并移至目录这个是安装的helm2 版本包括下面安装tiller都是helm2
首先将自己要安装的版本下载下来并解压,在将helm这个文件移至/usr/bin/helm目录下
[root@master ~]# wget https://get.helm.sh/helm-v2.9.0-linux-amd64.tar.gz [root@master ~]# tar zxvf helm-v2.9.0-linux-amd64.tar.gz [root@master ~]# cd linux-amd64 [root@master ~]# cp -a helm /usr/bin/helm
升华一下:
设置命令自动补全
[root@master ~]# echo 'source <(helm completion bash)'>> /etc/profile [root@master ~]# . /etc/profile #重载环境变量
到这里helm客户端已经完成了
2.安装tiller服务端首先要给tiller授权 因为 Helm 的服务端 Tiller 是一个部署在 Kubernetes 中 Kube-System Namespace 下 的 Deployment,它会去连接 Kube-Api 在 Kubernetes 里创建和删除应用。
而从 Kubernetes 1.6 版本开始,API Server 启用了 RBAC 授权。目前的 Tiller 部署时默认没有定义授权的 ServiceAccount,这会导致访问 API Server 时被拒绝。所以我们需要明确为 Tiller 部署添加授权。
创建 Kubernetes 的服务帐号和绑定角色
给tiller授权,这里采用yaml文件来授权
[root@k8s-master ]# vim helm.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: tiller #这里的name需要在下面helm init中指定
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
[root@k8s-master helm]# kubectl apply -f helm.yaml serviceaccount/tiller created clusterrolebinding.rbac.authorization.k8s.io/tiller created
方法一:
将相应的tiller镜像上传到各个节点,版本要与helm的客户端相同
授权完成后只需一步即可到位,只需执行
[root@master ~]# helm init --service-account tiller 这里我们指定使用上一步创建的服务账号
方法二:
上面的方法一是使用本地镜像进行构建的,下面是通过在网上直接下载tiller服务端进行安装,不过要保证服务器能上网
Tiller 是以 Deployment 方式部署在 Kubernetes 集群中的,只需使用以下指令便可简单的完成安装。
[root@node1 ~]# helm init
但由于 Helm 默认会去 storage.googleapis.com 拉取镜像,如果你当前执行的机器不能访问该域名的话可以使用以下命令来安装
将下载源修改为国内网站并下载tiller
[root@node1 ~]#helm init --upgrade --service-account tiller --tiller-image registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.9.0 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts 这里要注意下载的tiller服务端要与helm客户端版本相同3. 验证安装
运行helm version查看客户端与服务端是否在线
[root@k8s-master helm]# helm version
Client: &version.Version{SemVer:"v2.9.0", GitCommit:"f6025bb9ee7daf9fee0026541c90a6f557a3e0bc", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}
查看deploy是否以准备
[root@k8s-master helm]# kubectl get deploy -n kube-system NAME READY UP-TO-DATE AVAILABLE AGE coredns 2/2 2 2 17d tiller-deploy 1/1 1 1 73m
查看pod是否已运行
[root@k8s-master helm]# kubectl get pod -n kube-system ........ tiller-deploy-7d75d56c7d-psqvq 1/1 Running 0 61m4.我在安装时遇到的问题
问题1:提示命令不对,是因为这个是helm3版本,init命令为helm2的命令,helm3已经弃用,可使用helm env查看环境配置信息
Helm 3 中,Tiller 被移除了
[root@k8s-master bin]# helm init Error: unknown command "init" for "helm" Did you mean this? lint Run 'helm --help' for usage.



