Helm 是什么
- Helm 是 Deis 開發的一個用于 Kubernetes 應用的包管理工具,主要用來管理 Charts,有點類似于 Ubuntu 中的 APT 或 CentOS 中的 YUM,
- Helm Chart 是用來封裝 Kubernetes 原生應用程式的一系列 YAML 檔案,可以在你部署應用的時候自定義應用程式的一些 Metadata,以便于應用程式的分發,
對于應用發布者而言,可以通過 Helm 打包應用、管理應用依賴關系、管理應用版本并發布應用到軟體倉庫, - 對于使用者而言,使用 Helm 后不用需要撰寫復雜的應用部署檔案,可以以簡單的方式在 Kubernetes 上查找、安裝、升級、回滾、卸載應用程式,
做為 Kubernetes 的一個包管理工具,Helm具有如下功能:
- 創建新的 chart
- chart 打包成 tgz 格式
- 上傳 chart 到 chart 倉庫或從倉庫中下載 chart
- 在Kubernetes集群中安裝或卸載 chart
- 管理用Helm安裝的 chart 的發布周期
Helm 組件及相關術語
本文中講到的是helm V2最新版本,V3版本也已經發布了beta版,在 Helm 3 中,Tiller 被移除了,
-
Helm
Helm 是一個命令列下的客戶端工具,主要用于 Kubernetes 應用程式 Chart 的創建、打包、發布以及創建和管理本地和遠程的 Chart 倉庫, -
Tiller
Tiller 是 Helm 的服務端,部署在 Kubernetes 集群中,Tiller 用于接收 Helm 的請求,并根據 Chart 生成 Kubernetes 的部署檔案( Helm 稱為 Release ),然后提交給 Kubernetes 創建應用,Tiller 還提供了 Release 的升級、洗掉、回滾等一系列功能, -
Chart
包含了創建Kubernetes的一個應用實體的必要資訊,Helm 的軟體包,采用 TAR 格式,類似于 APT 的 DEB 包或者 YUM 的 RPM 包,其包含了一組定義 Kubernetes 資源相關的 YAML 檔案, -
Repoistory
Helm 的軟體倉庫,Repository 本質上是一個 Web 服務器,該服務器保存了一系列的 Chart 軟體包以供用戶下載,并且提供了一個該 Repository 的 Chart 包的清單檔案以供查詢,Helm 可以同時管理多個不同的 Repository, -
Release
是一個 chart 及其配置的一個運行實體,使用 helm install 命令在 Kubernetes 集群中部署的 Chart 稱為 Release,
Helm 作業流程
-
Chart Install 程序
Helm 從指定的目錄或者 TAR 檔案中決議出 Chart 結構資訊,
Helm 將指定的 Chart 結構和 Values 資訊通過 gRPC 傳遞給 Tiller,
Tiller 根據 Chart 和 Values 生成一個 Release,
Tiller 將 Release 發送給 Kubernetes 用于生成 Release, -
Chart Update 程序
Helm 從指定的目錄或者 TAR 檔案中決議出 Chart 結構資訊,
Helm 將需要更新的 Release 的名稱、Chart 結構和 Values 資訊傳遞給 Tiller,
Tiller 生成 Release 并更新指定名稱的 Release 的 History,
Tiller 將 Release 發送給 Kubernetes 用于更新 Release, -
Chart Rollback 程序
Helm 將要回滾的 Release 的名稱傳遞給 Tiller,
Tiller 根據 Release 的名稱查找 History,
Tiller 從 History 中獲取上一個 Release,
Tiller 將上一個 Release 發送給 Kubernetes 用于替換當前 Release, -
Chart 處理依賴說明
Tiller 在處理 Chart 時,直接將 Chart 以及其依賴的所有 Charts 合并為一個 Release,同時傳遞給 Kubernetes,因此 Tiller 并不負責管理依賴之間的啟動順序,Chart 中的應用需要能夠自行處理依賴關系,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/17620.html
標籤:其他
下一篇:k8s~helm的安裝程序
