1. 程式人生 > 其它 >k8s包管理器helm_K8S 實戰(十九)| K8S 包管理 Helm

k8s包管理器helm_K8S 實戰(十九)| K8S 包管理 Helm

技術標籤:k8s包管理器helm

前言

類似於 Linux 的 YUM、APT,Helm 是 K8S 的包管理工具。

Helm, 一個二進位制工具,用來安裝、升級、解除安裝 K8S 中的應用程式。

Helm Chart,一個 tgz 包,類似安卓的 APK。

K8S 應用打包成 Chart,通過 Helm 安裝到 K8S 叢集中。

更新歷史

  • 20200717 - 初稿 - 左程立
  • 原文地址 - https://blog.zuolinux.com/2020/07/17/k8s-package-manager-helm.html

Helm 包管理工具

安裝 Helm,解壓到 /usr/loca/bin/ 下

wgethttps://get.helm.sh/helm-v3.3.1-linux-amd64.tar.gz

新增國內倉庫

helmrepoaddapphubhttps://apphub.aliyuncs.com
helmrepoupdate
helmrepolist

查詢 nginx

helmsearchreponginx

安裝 nginx-ingress 到 K8S 中

helminstallnginxapphub/nginx

如果有報錯,有些舊倉庫往會最新版 K8S,這裡是 v1.18.2按照,會報錯,可以換個倉庫或者下載下來修改後本地安裝

報錯
Error:unabletobuildkubernetesobjectsfromreleasemanifest:unabletorecognize"":nomatchesforkind"Deployment"inversion"extensions/v1beta1"

helmpullapphub/nginx-ingress--untar

grep-irl"extensions/v1beta1"nginx-ingress|grepdeployment
grep-irl"extensions/v1beta1"nginx-ingress|grepdeploy|xargssed-i's#extensions/v1beta1#apps/v1#g'

helminstallnginx1./nginx-ingress/

再安裝一個 nginx-ingress

helminstallnginx2apphub/nginx

檢視已經安裝了哪些

helmlist

解除安裝

helmuninstallnginx
helmuninstallnginx2

在 K8S 中檢視安裝的應用

kubectlgetpod
kubectlgetservice

Helm 相關術語

Chart

Helm的應用包,採用tgz格式。類似於 Yum 的 RPM,其包含了一組定義 Kubernetes 資源相關的 YAML 檔案,也稱為應用 Chart。

Repoistory

Helm 的應用倉庫,儲存了一系列的 Chart 應用包以供使用者下載,並且提供了一個該 Repository 的 Chart 包清單檔案以供查詢。

Helm 可以同時管理多個不同的 Repository。

Helm 社群官方提供了 stable 和 incubator 倉庫,使用者也可以自己搭建倉庫。

倉庫可以是公共倉庫,也可以是私有倉庫。

Hub

不同的個人和組織提供的公共倉庫形成了分散和分佈的 Helm 倉庫,不利於查詢,所以官方提供了Helm Hub,各公共倉庫可以註冊到 Helm Hub 中以方便集中查詢,Helm Hub 只是分佈的倉庫的集中展示中心。

倉庫註冊到 Helm Hub 時,會將 Chart 清單檔案向 Helm Hub 同步一份,這樣可以在 Helm Hub 集中展示倉庫列表和各倉庫中的 Chart 列表。

Chart 包也就是 tgz 檔案實際上儲存在各倉庫中。Helm Hub 並不實際儲存 Chart 包。Helm 只是在查詢 Chart 時和 Helm Hub 有互動,其它操作都是和倉庫直接互動的。

Release

在 K8S 叢集上執行的 Chart 的一個例項。

在同一個叢集上,一個Chart可以安裝很多次。

每次安裝都會建立一個新的 Release。

例如一個 MySQL Chart,如果想在伺服器上執行兩個 MySQL 資料庫,就可以把這個 Chart 安裝兩次。每次安裝都會生成一個新的 Release。

結束語

Helm Chart 可幫助 K8S 應用實現打包、共享、一鍵安裝。

Helm Hub 收集了全球的各公共倉庫資訊,以便使用者可以集中查詢,但 Helm Hub 並沒有實際儲存 Chart 包,只是告訴使用者你可以去哪裡下載到 Chart 包。

聯絡我

微信公眾號:zuolinux_com

2c43bf4a4c2876d2fd3ba70df5865a1f.png
微信掃碼關注