Helm 安裝成功后,可執行 helm search
查看當前可安裝的 chart。
這個列表很長,這里只截取了一部分。大家不禁會問,這些 chart 都是從哪里來的?
前面說過,Helm 可以像 apt 和 yum 管理軟件包一樣管理 chart。apt 和 yum 的軟件包存放在倉庫中,同樣的,Helm 也有倉庫。
Helm 安裝時已經默認配置好了兩個倉庫:stable
和 local
。stable
是官方倉庫,local
是用戶存放自己開發的 chart 的本地倉庫。
helm search
會顯示 chart 位於哪個倉庫,比如 local/cool-chart
和 stable/acs-engine-autoscaler
。
用戶可以通過 helm repo add
添加更多的倉庫,比如企業的私有倉庫,倉庫的管理和維護方法請參考官網文檔 https://docs.helm.sh
與 apt 和 yum 一樣,helm 也支持關鍵字搜索:
包括 DESCRIPTION 在內的所有信息,只要跟關鍵字匹配,都會顯示在結果列表中。
安裝 chart 也很簡單,執行如下命令可以安裝 MySQL。
helm install stable/mysql
如果看到如下報錯,通常是因為 Tiller 服務器的權限不足。
執行如下命名添加權限:
kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
然后再次執行
helm install stable/mysql
輸出分為三部分:
① chart 本次部署的描述信息:
NAME
是 release 的名字,因為我們沒用 -n
參數指定,Helm 隨機生成了一個,這里是 fun-zorse
。
NAMESPACE
是 release 部署的 namespace,默認是 default
,也可以通過 --namespace
指定。
STATUS
為 DEPLOYED
,表示已經將 chart 部署到集群。
② 當前 release 包含的資源:Service、Deployment、Secret 和 PersistentVolumeClaim,其名字都是 fun-zorse-mysql
,命名的格式為 ReleasName
-ChartName
。
③ NOTES
部分顯示的是 release 的使用方法。比如如何訪問 Service,如何獲取數據庫密碼,以及如何連接數據庫等。
通過 kubectl get
可以查看組成 release 的各個對象:
因為我們還沒有准備 PersistentVolume,當前 release 還不可用。
helm list
顯示已經部署的 release,helm delete
可以刪除 release。
Helm 的使用方法像極了 apt 和 yum,用 Helm 來管理 Kubernetes 應用非常方便。
chart 是 Helm 的應用打包格式,下節我們詳細介紹。
書籍:
1.《每天5分鍾玩轉Kubernetes》
https://item.jd.com/26225745440.html
2.《每天5分鍾玩轉Docker容器技術》
https://item.jd.com/16936307278.html
3.《每天5分鍾玩轉OpenStack》
https://item.jd.com/12086376.html