(備注:helm官方已更新芹啥,此文章已過(guò)期)
大綱:
一锻离、為什么要安裝
二、helm的安裝
三墓怀、tiller的安裝
四汽纠、檢驗(yàn)是否安裝的正確
五、tiller刪除
一傀履、為什么要安裝
? ? 1虱朵、helm的作用:像centos7中的yum命令一樣,管理軟件包钓账,只不過(guò)helm這兒管理的是在k8s上安裝的各種容器碴犬。
? ? 2、tiller的作用:像centos7的軟件倉(cāng)庫(kù)一樣梆暮,簡(jiǎn)單說(shuō)類似于/etc/yum.repos.d目錄下的xxx.repo翅敌。
二、helm的安裝
? ? helm的安裝非常的簡(jiǎn)單惕蹄,首先在github上下載helm的二進(jìn)制安裝包蚯涮,然后直接將二進(jìn)制文件移動(dòng)到相關(guān)目錄下就可以了。
? ? 下載url:https://github.com/helm/helm/releases
[root@cma-cluster-slave5 k8s]# tar -zxvf helm-v2.11.0-linux-amd64.tar.gz
[root@cma-cluster-slave5 k8s]# cd linux-amd64/
[root@cma-cluster-slave5 linux-amd64]# mv helm /usr/bin/
? ? 測(cè)試一下:
[root@cma-cluster-slave5 linux-amd64]# helm
看見(jiàn)出現(xiàn)一大推提示就是安裝成功了
三卖陵、tiller的安裝
? ? Tiller有多種安裝方式遭顶,比如本地安裝或以pod形式部署到Kubernetes集群中。本文以pod安裝為例泪蔫,安裝Tiller的最簡(jiǎn)單方式是helm init, 該命令會(huì)檢查helm本地環(huán)境設(shè)置是否正確棒旗,helm init會(huì)連接kubectl默認(rèn)連接的kubernetes集群(可以通過(guò)kubectl config view查看),一旦連接集群成功撩荣,tiller會(huì)被安裝到kube-system namespace中铣揉。
? ? 為了安裝服務(wù)端tiller,還需要在這臺(tái)機(jī)器上配置好kubectl工具和kubeconfig文件餐曹,確保kubectl工具可以在這臺(tái)機(jī)器上訪問(wèn)apiserver且正常使用逛拱。 這里的node1節(jié)點(diǎn)以及配置好了kubectl。
? ? 因?yàn)镵ubernetes APIServer開(kāi)啟了RBAC訪問(wèn)控制台猴,所以需要?jiǎng)?chuàng)建tiller使用的service account: tiller并分配合適的角色給它朽合。 詳細(xì)內(nèi)容可以查看helm文檔中的Role-based Access Control。 這里簡(jiǎn)單起見(jiàn)直接分配cluster-admin這個(gè)集群內(nèi)置的ClusterRole給它饱狂。
創(chuàng)建rbac-config.yaml文件:
[root@cma-cluster-slave5 linux-amd64]# vim rbac-config.yaml
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
創(chuàng)建rbac服務(wù)
[root@cma-cluster-slave5 linux-amd64]# kubectl create -f rbac-config.yaml
serviceaccount/tiller created
clusterrolebinding.rbac.authorization.k8s.io/tiller created
1曹步、一種博主未知的安裝方式
[root@cma-cluster-slave5 linux-amd64]# pwd
/opt/k8s/linux-amd64
[root@cma-cluster-slave5 linux-amd64]# ls
helm LICENSE README.md tiller
? ? 這個(gè)目錄下的tiller二進(jìn)制是一個(gè)本地安裝的文件,怒在下愚鈍休讳,暫不知如何使用讲婚。
2、博主采用的安裝方式
直接使用docker拉取這個(gè)鏡像俊柔,查看dockerfile文件就可以知道這是直接從谷歌鏡像庫(kù)拉取過(guò)來(lái)的了筹麸,感謝這位熱心的網(wǎng)友哈纳猫。
[root@cma-cluster-slave5 linux-amd64]# docker pull fishead/gcr.io.kubernetes-helm.tiller:v2.11.0
? ? 因?yàn)?helm init 初始化的時(shí)候會(huì)在k8s集群中安裝tiller的服務(wù)端,用到了此鏡像竹捉。
安裝tiller
? ? helm init --upgrade --service-account tiller --tiller-image fishead/gcr.io.kubernetes-helm.tiller:v2.11.0 --stable-repo-url http://10.16.48.44/
? ? 備注:上面命令中的--stable-repo-url http://10.16.48.44/這個(gè)是我用apache http做的芜辕,這兒下面放了一個(gè)文件index.yaml文件,可以從這兒下載到https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts/index.yaml
? ? 在瀏覽器中輸入http://10.16.48.44/index.yaml块差,將顯示剛剛下載的頁(yè)面(冒充的侵续,嘿嘿)
四、檢驗(yàn)是否安裝的正確
? ? 檢驗(yàn)tiller是否安裝上
[root@cma-cluster-slave5 home]# kubectl get pod -n kube-system|grep tiller
tiller-deploy-7d574cfdcc-px2wh 1/1 Running 0 1d
? ? 查看tiller的repo倉(cāng)庫(kù)
[root@cma-cluster-slave5 home]# helm repo list
NAME URL
stable http://10.16.48.44/
local http://127.0.0.1:8879/charts
? ? 檢查客戶端和服務(wù)端是否一致
[root@cma-cluster-slave5 home]# helm version
Client: &version.Version{SemVer:"v2.11.0", GitCommit:"2e55dbe1fdb5fdb96b75ff144a339489417b146b", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.11.0", GitCommit:"2e55dbe1fdb5fdb96b75ff144a339489417b146b", GitTreeState:"clean"}
上面中的GitCommit兩個(gè)值相同憨闰,就是版本一致(博主猜測(cè)状蜗,因?yàn)榕鲆?jiàn)過(guò)報(bào)版本不一致的錯(cuò)誤,這里就不做錯(cuò)誤的復(fù)現(xiàn)了)
五鹉动、tiller刪除
? ? 可能會(huì)發(fā)生安裝后需要?jiǎng)h除或者安裝不成功的情況
[root@cma-cluster-slave5 home]# helm reset -f
[root@cma-cluster-slave5 home]# rm -rf /root/.helm
? ? 然后重新安裝即可