重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設、域名注冊、服務器等服務
為企業(yè)提供網(wǎng)站建設、域名注冊、服務器等服務
helm是kubernetes的包管理工具,用于簡化部署和管理 Kubernetes 應用。用來管理charts——預先配置好的安裝包資源。
Helm和charts的主要作用:
應用程序封裝
版本管理
依賴檢查
便于應用程序分發(fā)
helm是一個C/S框架的軟件,helm相當于一個客戶端,tiller是一個服務端
Helm CLI 是 Helm 客戶端,可以在本地執(zhí)行
Tiller 是服務器端組件,在 Kubernetes 群集上運行,并管理 Kubernetes 應用程序的生命周期
Repository 是 Chart 倉庫,Helm客戶端通過HTTP協(xié)議來訪問倉庫中Chart的索引文件和壓縮包
Helm工作原理
Chart Install 過程:
Helm從指定的目錄或者tgz文件中解析出Chart結構信息
Helm將指定的Chart結構和Values信息通過gRPC傳遞給Tiller
Tiller根據(jù)Chart和Values生成一個Release
Tiller將Release發(fā)送給Kubernetes用于生成Release
創(chuàng)新互聯(lián)長期為上千多家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為雁塔企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都做網(wǎng)站、外貿營銷網(wǎng)站建設,雁塔網(wǎng)站改版等技術服務。擁有10余年豐富建站經驗和眾多成功案例,為您定制開發(fā)。
Chart Update過程:
Helm從指定的目錄或者tgz文件中解析出Chart結構信息
Helm將要更新的Release的名稱和Chart結構,Values信息傳遞給Tiller
Tiller生成Release并更新指定名稱的Release的History
Tiller將Release發(fā)送給Kubernetes用于更新Release
Chart Rollback過程:
Helm將要回滾的Release的名稱傳遞給Tiller
Tiller根據(jù)Release的名稱查找History
Tiller從History中獲取上一個Release
Tiller將上一個Release發(fā)送給Kubernetes用于替換當前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)建服務賬戶
kubectl -n kube-system create serviceaccount tiller
kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
初始化tiller
注意:離線環(huán)境中需要顯式指明 --tiller-image,并且需要與helm client的版本一致,如上面的v2.14.3,下面通過環(huán)境變量方式自動選擇合適版本
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"}