一、helm簡單介紹
Helm是k8s的包管理工具。我們在使用k8s部署服務的時候,經常要創建多個資源對象,並且這些資源對象可能還有先后順序,部署起來會比較麻煩。如果服務需要提供給其他人部署使用,那對大家都是一場災難。(部署過程可能會遇到問題)。這時候,helm就體現出它的作用了,helm支持部署服務時創建多個資源對象如deployment、service等等,並且按一定的順序進行創建。(順序參考官方文檔https://helm.sh/zh/docs/intro/using_helm/)
當我們打包好chart並且上傳到倉庫后,其他人就可以直接安裝了。簡單方便。
二、helm中的三大概念
Chart 代表着 Helm 包。它包含在 Kubernetes 集群內部運行應用程序,工具或服務所需的所有資源定義。你可以把它看作是 Homebrew formula,Apt dpkg,或 Yum RPM 在Kubernetes 中的等價物。
Repository(倉庫) 是用來存放和共享 charts 的地方。它就像 Perl 的 CPAN 檔案庫網絡 或是 Fedora 的 軟件包倉庫,只不過它是供 Kubernetes 包所使用的。
Release 是運行在 Kubernetes 集群中的 chart 的實例。一個 chart 通常可以在同一個集群中安裝多次。每一次安裝都會創建一個新的 release。以 MySQL chart為例,如果你想在你的集群中運行兩個數據庫,你可以安裝該chart兩次。每一個數據庫都會擁有它自己的 release 和 release name。
在了解了上述這些概念以后,我們就可以這樣來解釋 Helm:
Helm 安裝 charts 到 Kubernetes 集群中,每次安裝都會創建一個新的 release。你可以在 Helm 的 chart repositories 中尋找新的 chart。
chart和release感覺像docker中鏡像和容器一樣,一個是靜態的,一個是運行實例
三、helm的常用命令
1、查找charts
- helm search hub 從 Artifact Hub 中查找並列出 helm charts。 Artifact Hub中存放了大量不同的倉庫。
- helm search repo 從你添加(使用 helm repo add)到本地 helm 客戶端中的倉庫中進行查找。該命令基於本地數據進行搜索,無需連接互聯網。
2、安裝 helm包
使用 helm install 命令來安裝一個新的 helm 包。最簡單的使用方法只需要傳入兩個參數:你命名的release名字和你想安裝的chart的名稱。
安裝前修改chart包
helm show values可以查看chart可配置選項
helm show values helm包名稱
helm install 命令可以從多個來源進行安裝:
- chart 的倉庫(如上所述)
- 本地 chart 壓縮包(helm install foo foo-0.1.1.tgz)
- 解壓后的 chart 目錄(helm install foo path/to/foo)
- 完整的 URL(helm install foo https://example.com/charts/foo-1.2.3.tgz)
3、helm upgrade 和 helm rollback:升級 release 和失敗時恢復
4、 helm uninstall 命令從集群中卸載一個 release:
5、'helm repo':使用倉庫
helm repo list 查看所有倉庫
helm repo add xxx 添加倉庫
helm repo remove xxx 刪除倉庫
6、創建charts
helm create xxx
創建完成后使用helm lint檢查格式是否正確
7、helm lint xxx
打包
8、helm package xxx
安裝
9、helm install xxx
參考官方文檔
https://helm.sh/zh/docs/intro/using_helm/
