helm是kubernetes的包管理工具,用于簡(jiǎn)化部署和管理 Kubernetes 應(yīng)用。用來(lái)管理charts——預(yù)先配置好的安裝包資源。
Helm和charts的主要作用:
應(yīng)用程序封裝
版本管理
依賴(lài)檢查
便于應(yīng)用程序分發(fā)
helm是一個(gè)C/S框架的軟件,helm相當(dāng)于一個(gè)客戶(hù)端,tiller是一個(gè)服務(wù)端
Helm CLI 是 Helm 客戶(hù)端,可以在本地執(zhí)行
Tiller 是服務(wù)器端組件,在 Kubernetes 群集上運(yùn)行,并管理 Kubernetes 應(yīng)用程序的生命周期
Repository 是 Chart 倉(cāng)庫(kù),Helm客戶(hù)端通過(guò)HTTP協(xié)議來(lái)訪(fǎng)問(wèn)倉(cāng)庫(kù)中Chart的索引文件和壓縮包
Helm工作原理
Chart Install 過(guò)程:
Helm從指定的目錄或者tgz文件中解析出Chart結(jié)構(gòu)信息
Helm將指定的Chart結(jié)構(gòu)和Values信息通過(guò)gRPC傳遞給Tiller
Tiller根據(jù)Chart和Values生成一個(gè)Release
Tiller將Release發(fā)送給Kubernetes用于生成Release
Chart Update過(guò)程:
Helm從指定的目錄或者tgz文件中解析出Chart結(jié)構(gòu)信息
Helm將要更新的Release的名稱(chēng)和Chart結(jié)構(gòu),Values信息傳遞給Tiller
Tiller生成Release并更新指定名稱(chēng)的Release的History
Tiller將Release發(fā)送給Kubernetes用于更新Release
Chart Rollback過(guò)程:
Helm將要回滾的Release的名稱(chēng)傳遞給Tiller
Tiller根據(jù)Release的名稱(chēng)查找History
Tiller從History中獲取上一個(gè)Release
Tiller將上一個(gè)Release發(fā)送給Kubernetes用于替換當(dāng)前Release
curl -LO https://www.cnrancher.com/download/helm/helm-v2.14.3-linux-amd64.tar.gz
tar -xvf helm-v2.14.3-linux-amd64.tar.gz
sudo cp linux-amd64/helm /usr/local/bin/
查看版本信息
$ helm version
Client: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
Error: could not find tiller
創(chuàng)建服務(wù)賬戶(hù)
kubectl -n kube-system create serviceaccount tiller
kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
初始化tiller
注意:離線(xiàn)環(huán)境中需要顯式指明 --tiller-image,并且需要與helm client的版本一致,如上面的v2.14.3,下面通過(guò)環(huán)境變量方式自動(dòng)選擇合適版本
docker pull zhaojiajie/kubernetes-helm/tiller:v2.14.3
helm init --service-account tiller --tiller-image rancher/tiller:v2.14.3 --skip-refresh
$ kubectl get pods --namespace kube-system | grep tiller
tiller-deploy-65cff4d7bc-g9gzm 1/1 Running 0 11d
$ helm version
Client: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。