Ubuntu18安裝Helm2.14.0

Helm簡介

此文章取自官網 https://helm.sh/,并加入了自己的理解

Kubernetes的包管理器,類似于CentOS的yum和Ubuntu的apt,每個包稱為一個Chart,一個Chart是一個目錄,一般情況下會將目錄進行打包壓縮,形成name-version.tgz格式的單一文件,方便傳輸和存儲

對應用發布者而言,Helm可以打包應用,管理應用依賴關系,管理應用版本并發布到軟件倉庫。
對使用者而言,不再需要了解Kubernetes的Yaml語法并編寫應用部署文件,可以通過Helm下載并在kubernetes上安裝需要的應用。

Helm Charts可降低管理復雜性,可定義、安裝和升級應用程序,容易在公有云或私有云創建、版本、共享、發布、回滾

詞義:

Tiller:Tiller 是 Helm 的服務端,部署在 Kubernetes 集群中。用于接收 Helm 的請求
Chart:Helm 的軟件包,采用 TAR 格式。其包含一組k8s的YAML資源文件
Repoistory:Helm 的軟件倉庫,用來保存Chart的軟件包,Helm可管理多個Repoistory
Release:使用 helm install 命令在 Kubernetes 集群中部署的 Chart 稱為 Release。

先決條件

成功且正確安全地使用Helm需要滿足以下先決條件。

  • Kubernetes集群
  • 確定要應用于安裝的安全配置(如果有)
  • 安裝和配置集群端服務Helm和Tiller。

注意1:作者此處是虛擬機內安裝了kubernetes單master節點,若是生產安裝請移步官方文檔:Helm安全安裝
注意2:默認情況下,安裝Tiller時,未啟用身份驗證。要了解有關為Tiller配置強TLS身份驗證的更多信息,請參閱 Tiller TLS指南

作者Machine 為Ubuntu 18.04具體信息如下:

root@master:/home/hzz# lsb_release -a

Distributor ID: Ubuntu
Description:    Ubuntu 18.04.2 LTS
Release:    18.04
Codename:   bionic

docker版本為18.06.3-ce,小版本沒有太大差別
Kubernetes版本為1.15.3:

root@master:/home/hzz# kubectl version

Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:13:54Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:05:50Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}

打開可以查看版本,后面拼接系統對應版本就可以下載了,linux直接wget就可以
谷歌鏡像地址:https://storage.googleapis.com/kubernetes-helm/
微軟鏡像地址:https://mirror.azure.cn/kubernetes/helm/
如:

root@master:/home/hzz# wget https://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz
--2019-09-01 17:09:32--  https://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz
Resolving storage.googleapis.com (storage.googleapis.com)... 172.217.160.80, 2404:6800:4008:802::2010
Connecting to storage.googleapis.com (storage.googleapis.com)|172.217.160.80|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9160761 (8.7M) [application/x-tar]
Saving to: ‘helm-v2.9.1-linux-amd64.tar.gz’

helm-v2.9.1-linux-amd64.tar.gz                100%[==============================================================================================>]   8.74M  9.03MB/s    in 1.0s    

2019-09-01 17:09:34 (9.03 MB/s) - ‘helm-v2.9.1-linux-amd64.tar.gz’ saved [9160761/9160761]

一、安裝

注:這里作者安裝的是穩定的2.14.0版本

1、解壓包,復制helm到/usr/local/bin/ 客戶端

我這里用的是root用戶,所以直接拷貝到了/usr/bin/目錄下

root@master:/home/hzz# tar -zxvf helm-v2.14.0-linux-amd64.tar.gz 
linux-amd64/
linux-amd64/tiller
linux-amd64/README.md
linux-amd64/LICENSE
linux-amd64/helm
root@master:/home/hzz# cp linux-amd64/helm /usr/bin/
root@master:/home/hzz# helm
The Kubernetes package manager

To begin working with Helm, run the 'helm init' command:

    $ helm init

This will install Tiller to your running Kubernetes cluster.
It will also set up any necessary local configuration.

此時運行helm version已經可以看到helm客戶端的版本了,但是連接不到服務端

root@master:/home/hzz# helm version
Client: &version.Version{SemVer:"v2.14.0", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}
Error: could not find a ready tiller pod

2、初始化Helm 服務端

注:此處k8s會去倉庫拉鏡像,谷歌被墻所以這里需要指定--stable-repo-url參數

helm init \
    --history-max=3 \
    --tiller-image=gcr.azk8s.cn/kubernetes-helm/tiller:v2.14.0 \
    --stable-repo-url=https://mirror.azure.cn/kubernetes/charts/ \
    --service-account=helm-tiller
2.1、創建account并賦權

注意3:1.6之前的Kubernetes版本對基于角色的訪問控制(RBAC)的支持有限或不支持。1.6之后的默認開啟

我這里k8s集群開啟了RBAC認證,所以需要多處理一步,沒開啟RBAC的可忽略

# 創建賬號、綁定角色
kubectl create serviceaccount --namespace kube-system helm-tiller
kubectl create clusterrolebinding helm-tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:helm-tiller

# 給tiller設置角色
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"helm-tiller"}}}}' deployment.extensions "tiller-deploy" patched

# 查看授權
kubectl get deploy --namespace kube-system   tiller-deploy  --output yaml|grep  serviceAccount
      serviceAccount: helm-tiller
      serviceAccountName: helm-tiller

如果這里的權限問題沒有處理好,安裝完成后會發現命令沒有權限,

root@master:/home/hzz# helm ls
Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list resource "configmaps" in API group "" in the namespace "kube-system"

可以通過helm reset -f或者helm reset --force強制刪除tiller容器后,使用正確的參數重新進行helm init操作

3、驗證安裝

出現helm client 和server之后helm便安裝完成

root@master:/home/hzz# kubectl -n kube-system get pods|grep tiller-deploy
tiller-deploy-7d49974877-w78nz          1/1     Running   0          4h46m

root@master:/home/hzz# helm version
Client: &version.Version{SemVer:"v2.14.0", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.0", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}

可執行helm list查看K8S中已安裝的charts 。

二、使用

1、更換倉庫

# 先移除原先的倉庫
root@master:/home/hzz# helm repo remove stable
"stable" has been removed from your repositories

# 添加新的倉庫地址
root@master:/home/hzz# helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
"stable" has been added to your repositories

# 更新倉庫
root@master:/home/hzz# helm repo update
Hang tight while we grab the latest from your chart repositories...
...Skip local chart repository
...Successfully got an update from the "stable" chart repository
Update Complete.

2、查看可獲取的Chart

root@master:/home/hzz# helm search
NAME                            CHART VERSION   APP VERSION     DESCRIPTION                     
stable/acs-engine-autoscaler    2.1.3           2.1.1           Scales worker nodes within agent pools                      
stable/aerospike                0.1.7           v3.14.1.2       A Helm chart for Aerospike in Kubernetes                    
stable/anchore-engine           0.1.3           0.1.6           Anchore container analysis and policy evaluation engine s...
stable/artifactory              7.0.3           5.8.4           Universal Repository Manager supporting all major packagi...
stable/artifactory-ha           0.1.0           5.8.4           Universal Repository Manager supporting all major packagi...
stable/aws-cluster-autoscaler   0.3.2                           Scales worker nodes within autoscaling groups.              
stable/bitcoind                 0.1.0           0.15.1          Bitcoin is an innovative payment network and a new kind o...
..................

這里有一篇思路更清晰的文章
參考:https://blog.csdn.net/bbwangj/article/details/81087911

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,702評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,143評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,553評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,620評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,416評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,940評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,024評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,170評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,709評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,597評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,784評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,291評論 5 357
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,029評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,407評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,663評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,403評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,746評論 2 370

推薦閱讀更多精彩內容