Oh My Iron man post - day five
Oh My Helm ! 部署應用的神兵利器 - 1
- 目錄
- 💎 Introduce Helm Chart 💎
- Introduce Kustomize
講完了log收集後, 我們來介紹在K8s你可以利用哪些工具,讓你在部署應用的過程中更省力
Helm的簡介
首先介紹一個K8s的應用管理工具 – Helm。
Helm之於K8s就如同RHEL的yum, Ubuntu的apt-get, 是K8s部署不可少的神兵利器。
在Helm的世界裡有兩個Term:
- chart - 應用的部署package, 詳細介紹請看此
- release - 部署完的helm
Helm的架構圖
由這張架構圖可以很清楚的看到Helm, tiller以及K8s的關係
Helm 就是 Client, 負責幫你抓你要的檔案(chart)下來
而Tiller則是擔任server, 幫你呼叫K8s API把抓下來的檔案部署上K8s
稍微對K8s有研究的人就會知道,一個完整的應用不只需要Deployment, 還會需要Service, Ingress, ServiceAccount, …等等的部署文件。而其中又可能有相依性,這時候如果有整套的部署文件幫你船便便那該有多好! 當然如果你寫好了部署文件想要打包起來上傳分享也可以。
於是乎神器Helm就這樣降臨了!
Helm的使用
要使用Helm也非常簡單
1 | brew install kubernetes-helm |
沒錯使用Mac就是一鍵安裝, 其他的OS安裝方式請看這裡
裝完之後我們還需要在K8s上裝一個叫tiller的server, tiller可以監聽來自helm client(Cli)的請求, 幫我們在K8s上安裝好想要的chart。
首先初始化
1 | helm init |
helm init 完之後可以看到tiller component已經跑起來了
更新chart repo
試著安裝一個chart
失敗了?
根據這個已經被公開的Issue表示原因出自於K8s RBAC的權限問題,詳細文件請看這
照著issue裡面的workaround添加相應的角色,權限問題就解決了
重新裝一遍mysql chart
OK成功!
helm 在安裝的同時也會有說明講解要如何確認你的chart是否裝好了
要解除安裝也很方便, 下del指令即可
1 | helm del --purge ${helm release name} |
如果還想找更多的charts, 可以到這裡來
或是可以下command搜尋(如果不給關鍵字就會有全部的charts)
1 | helm search ${chart name} |
同場加映: Helm v3
Helm v3出來囉!看這裡
這次拿掉惱人的tiller,也修改了一些指令,有興趣的人可以看一下
打完收工。
下篇來講講K8s的Service
Reference
- Helm Docs: https://helm.sh/docs/glossary/
- 快速開始使用Helm: https://helm.sh/docs/using_helm/#quickstart-guide
- RBAC問題速解:https://www.cnblogs.com/mingbai/p/helmerr.html
- Helm blog - Helm v3 release!: https://helm.sh/blog/helm-v3-beta/