相似於 Linux 的 YUM、APT,Helm 是 K8S 的包管理工具。html
Helm, 一個二進制工具,用來安裝、升級、卸載 K8S 中的應用程序。linux
Helm Chart,一個 tgz 包,相似安卓的 APK。nginx
K8S 應用打包成 Chart,經過 Helm 安裝到 K8S 集羣中。數據庫
安裝 Helm,解壓到 /usr/loca/bin/ 下服務器
wget https://get.helm.sh/helm-v3.3.1-linux-amd64.tar.gz
添加國內倉庫微信
helm repo add apphub https://apphub.aliyuncs.com helm repo update helm repo list
查找 nginxapp
helm search repo nginx
安裝 nginx-ingress 到 K8S 中工具
helm install nginx apphub/nginx
若是有報錯,有些舊倉庫往會最新版 K8S,這裏是 v1.18.2按照,會報錯,能夠換個倉庫或者下載下來修改後本地安裝ui
報錯 Error: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "Deployment" in version "extensions/v1beta1" helm pull apphub/nginx-ingress --untar grep -irl "extensions/v1beta1" nginx-ingress | grep deployment grep -irl "extensions/v1beta1" nginx-ingress | grep deploy | xargs sed -i 's#extensions/v1beta1#apps/v1#g' helm install nginx1 ./nginx-ingress/
再安裝一個 nginx-ingressspa
helm install nginx2 apphub/nginx
查看已經安裝了哪些
helm list
卸載
helm uninstall nginx helm uninstall nginx2
在 K8S 中查看安裝的應用
kubectl get pod kubectl get service
Helm的應用包,採用tgz格式。相似於 Yum 的 RPM,其包含了一組定義 Kubernetes 資源相關的 YAML 文件,也稱爲應用 Chart。
Helm 的應用倉庫,保存了一系列的 Chart 應用包以供用戶下載,而且提供了一個該 Repository 的 Chart 包清單文件以供查詢。
Helm 能夠同時管理多個不一樣的 Repository。
Helm 社區官方提供了 stable 和 incubator 倉庫,用戶也能夠本身搭建倉庫。
倉庫能夠是公共倉庫,也能夠是私有倉庫。
不一樣的我的和組織提供的公共倉庫造成了分散和分佈的 Helm 倉庫,不利於查找,因此官方提供了Helm Hub,各公共倉庫能夠註冊到 Helm Hub 中以方便集中查找,Helm Hub 只是分佈的倉庫的集中展現中心。
倉庫註冊到 Helm Hub 時,會將 Chart 清單文件向 Helm Hub 同步一份,這樣能夠在 Helm Hub 集中展現倉庫列表和各倉庫中的 Chart 列表。
Chart 包也就是 tgz 文件實際上存儲在各倉庫中。Helm Hub 並不實際存儲 Chart 包。Helm 只是在查詢 Chart 時和 Helm Hub 有交互,其它操做都是和倉庫直接交互的。
在 K8S 集羣上運行的 Chart 的一個實例。
在同一個集羣上,一個Chart能夠安裝不少次。
每次安裝都會建立一個新的 Release。
例如一個 MySQL Chart,若是想在服務器上運行兩個 MySQL 數據庫,就能夠把這個 Chart 安裝兩次。每次安裝都會生成一個新的 Release。
Helm Chart 可幫助 K8S 應用實現打包、共享、一鍵安裝。
Helm Hub 收集了全球的各公共倉庫信息,以便用戶能夠集中查找,但 Helm Hub 並無實際存儲 Chart 包,只是告訴用戶你能夠去哪裏下載到 Chart 包。
微信公衆號:zuolinux_com