[TOC]
原创文章 转载请注明出处。
安装helm 客户端
方法1 手工安装
选择对应的二进制文件下载,然后放到执行kubectl 的机器上。解压,修改可执行属性
unzip helm.zip
chmod +x helm
mv helm /usr/local/bin
方法2 脚本安装
$ curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get > get_helm.sh
$ chmod 700 get_helm.sh
$ ./get_helm.sh
# 或者
$ curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash
客户端安装完成
安装 tiller server端
server 端是已deployment的形式安装在k8s 的 kube-system namespace下的。这里有个安全方面的坑。
添加安全相关的配置
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: tiller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
将上面的内容保存为helmsec.yml, 然后通过kubectl 创建对应的service account 和 role binding
kubectl create -f helmsec.yml
使用刚刚创建的service account初始化服务端,详细参数可以使用 helm init -h 查看
helm init --service-account tiller
安装完成后看到如下信息
1.png
验证安装
helm version
2.png
安装完成
可以使用helm install xxx 安装软件了
TROUBLE SHOOTING
-
1 Error: no available release name found
遇到这个错误,是由于权限问题引起的。如果没有使用之前声明的权限和helm 关联,就会遇到这个错误。
3.png
解决办法
删除对应的 service,deployment, service account, role binding, 重新创建关联即可
kubectl delete svc tiller-deploy -n kube-system
kubectl delete deploy tiller-deploy -n kube-system
kubectl delete -f helmsec.yml
kubectl create -f helmsec.yml
helm init --service-account tiller #注意,这里的--service-account 参数非常重要,如果少了关联,依然会报错。
网友评论