网上很多教程,都写的挺好的。但是我看了下,有个什么tiller 什么的可以不用安装什么的。反正有很多不同的版本,安装方式也不一样,我的k8s是用kubeadm方式安装的。总之安装tiller的时候也很多坑,其中flannel那个问题坑了我一整天,最后不得已换成了calico,有使用flannel并且成功的朋友麻烦透露下方法,不胜感激!

 

具体步骤:

一、下载helm tar包

我刚开始用的是shell安装脚本的方式,但是阿里云服务器不知道为什么下载不了,就是一直卡死在tar包下载这里。

curl https://raw.githubusercontent.com/helm/helm/master/scripts/get |bash

然后我用wget方式下载的:

wget https://get.helm.sh/helm-v2.16.1-linux-amd64.tar.gz

实在不行,办公室的电脑手动下载然后上传上去的。

 

二、解压tar包

tar zxvf helm-v2.16.1-linux-amd64.tar.gz

linux-amd64/

linux-amd64/helm

linux-amd64/LICENSE

linux-amd64/tiller

linux-amd64/README.md

 

解压完成发现在当前目录下有几个文件,我们移动helm文件到bin里

mv linux-amd64/helm /usr/local/bin/

 

三、初始化tiller

查看 版本

helm version

Client: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"}

Error: could not find tiller

发现没有tiller

 

然后初始化

helm init

Creating /root/.helm

Creating /root/.helm/repository

Creating /root/.helm/repository/cache

Creating /root/.helm/repository/local

Creating /root/.helm/plugins

Creating /root/.helm/starters

Creating /root/.helm/cache/archive

Creating /root/.helm/repository/repositories.yaml

Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com

Adding local repo with URL: http://127.0.0.1:8879/charts

$HELM_HOME has been configured at /root/.helm.


Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.


Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy.

To prevent this, run `helm init` with the --tiller-tls-verify flag.

For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation

 

提示是什么 不安全,先不理会

 

查看tiller 的服务

kubectl get svc -n kube-system

已经好了:

[root@localhost sea]# kubectl get svc -n kube-system
NAME            TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)                  AGE
kube-dns        ClusterIP   10.96.0.10    <none>        53/UDP,53/TCP,9153/TCP   2d20h
tiller-deploy   ClusterIP   10.96.220.3   <none>        44134/TCP                36m

再次执行 版本查看

helm version
Client: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"}
Error: could not find tiller

 

依然提示没有tiller

 

然后去看tiller的pod

kubectl get pod -n kube-system
NAME                                              READY   STATUS             RESTARTS   AGE
etcd-iz8vb28ugr0yzlmfw0yxd8z                      1/1     Running            7          4d18h
kube-scheduler-iz8vb28ugr0yzlmfw0yxd8z            1/1     Running            8          4d18h
tiller-deploy-b747845f-2jzcp                      0/1     ImagePullBackOff   0          2m27s

 

STATUS竟然是backoff的,应该是 镜像又被墙了

 

然后去查看

kubectl describe pod tiller-deploy-b747845f-2jzcp -n kube-system

 

显示镜像拉取失败

 

这时候最方便的就是去打tag绕过qiang了。。。

 

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.16.1

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.16.1 gcr.io/kubernetes-helm/tiller:v2.16.1

 

稍等10秒,再次查看版本

[root@localhost sea]# helm version
Client: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"}

可以了。

然后去创建一个应用试试

helm install stable/tomcat

一直卡着,最后报错:Error: no available release name found

 

这个错误是因为权限不够

kubectl create serviceaccount --namespace kube-system tiller

kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller

kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

命令执行后提示 deployment.extensions "tiller-deploy" patched 即可。

注意:到这一步,如果是kubeadm,并且网络组件是flannel,可能还是会报Error: no available release name found这个错误,这个时候,可以更换为calico网络组件,我是这样做的。

 

然后再继续安装应用测试

helm install stable/tomcat

应该是已经可以了。

如果还是不行,欢迎微我 marinechat,谢谢。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐