预备知识
如果你不知道Helm是做什么的,那么请参考下面链接(包括但不限于)进行学习:
创建ServiceAccount
在任意一个master节点执行以下命令
kubectl create serviceaccount --namespace kube-system helm-tiller kubectl create clusterrolebinding helm-tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:helm-tiller
部署客户端
在任意一个master节点执行以下命令
根据系统下载所需版本
curl -L -o helm-v2.14.3-linux-amd64.tar.gz https://file.choerodon.com.cn/kubernetes-helm/v2.14.3/helm-v2.14.3-linux-amd64.tar.gz解压压缩包(以linux-amd64为例)
tar -zxvf helm-v2.14.3-linux-amd64.tar.gz将文件移动到PATH目录中(以linux-amd64为例)
sudo mv linux-amd64/helm /usr/bin/helm初始化Helm
helm init \ --history-max=3 \ --tiller-image=gcr.mirrors.ustc.edu.cn/kubernetes-helm/tiller:v2.14.3 \ --stable-repo-url=https://mirror.azure.cn/kubernetes/charts/ \ --service-account=helm-tiller
如果出现如下错误
$HELM_HOME has been configured at /root/.helm.
Error: error installing: the server could not find the requested resource
原因是因为1.16.0之后的deployment 的apiversion的endpoint发生了变化需要做如下处理:
输出tiller的定义文件
> helm init --output yaml > tiller.yaml
#修改定义文件 apiVersion改为apps/v1,并新增selector信息 如下:
> vim tiller.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: helm
name: tiller
name: tiller-deploy
namespace: kube-system
spec:
replicas: 1
strategy: {}
selector:
matchLabels:
app: helm
name: tiller
...
#修改后执行定义文件
> kubectl apply -f tiller.yaml
验证部署
执行命令,出现以下信息即部署成功。
$ helm version Client: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}