原創(chuàng):kubernetes(k8s)離線安裝helm和tiller(備注:helm官方已更新,此文章已過期)

(備注:helm官方已更新,此文章已過期)

大綱:
一、為什么要安裝
二、helm的安裝
三、tiller的安裝
四、檢驗(yàn)是否安裝的正確
五、tiller刪除

一、為什么要安裝

? ? 1、helm的作用:像centos7中的yum命令一樣,管理軟件包,只不過helm這兒管理的是在k8s上安裝的各種容器。
? ? 2、tiller的作用:像centos7的軟件倉庫一樣,簡單說類似于/etc/yum.repos.d目錄下的xxx.repo。

二、helm的安裝

? ? helm的安裝非常的簡單,首先在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/

? ? 測試一下:

[root@cma-cluster-slave5 linux-amd64]# helm

看見出現(xiàn)一大推提示就是安裝成功了

三、tiller的安裝

? ? Tiller有多種安裝方式,比如本地安裝或以pod形式部署到Kubernetes集群中。本文以pod安裝為例,安裝Tiller的最簡單方式是helm init, 該命令會(huì)檢查helm本地環(huán)境設(shè)置是否正確,helm init會(huì)連接kubectl默認(rèn)連接的kubernetes集群(可以通過kubectl config view查看),一旦連接集群成功,tiller會(huì)被安裝到kube-system namespace中。

? ? 為了安裝服務(wù)端tiller,還需要在這臺(tái)機(jī)器上配置好kubectl工具和kubeconfig文件,確保kubectl工具可以在這臺(tái)機(jī)器上訪問apiserver且正常使用。 這里的node1節(jié)點(diǎn)以及配置好了kubectl。

? ? 因?yàn)镵ubernetes APIServer開啟了RBAC訪問控制,所以需要?jiǎng)?chuàng)建tiller使用的service account: tiller并分配合適的角色給它。 詳細(xì)內(nèi)容可以查看helm文檔中的Role-based Access Control。 這里簡單起見直接分配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文件就可以知道這是直接從谷歌鏡像庫拉取過來的了,感謝這位熱心的網(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à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倉庫

[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è)值相同,就是版本一致(博主猜測,因?yàn)榕鲆娺^報(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

? ? 然后重新安裝即可

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容