k8s~helm的介紹

Helm 是什麼

  1. Helm 是 Deis 開發的一個用於 Kubernetes 應用的包管理工具,主要用來管理 Charts。有點相似於 Ubuntu 中的 APT 或 CentOS 中的 YUM。
  2. Helm Chart 是用來封裝 Kubernetes 原生應用程序的一系列 YAML 文件。能夠在你部署應用的時候自定義應用程序的一些 Metadata,以便於應用程序的分發。
    對於應用發佈者而言,能夠經過 Helm 打包應用、管理應用依賴關係、管理應用版本併發布應用到軟件倉庫。
  3. 對於使用者而言,使用 Helm 後不用須要編寫複雜的應用部署文件,能夠以簡單的方式在 Kubernetes 上查找、安裝、升級、回滾、卸載應用程序。

作爲 Kubernetes 的一個包管理工具,Helm具備以下功能:服務器

  1. 建立新的 chart
  2. chart 打包成 tgz 格式
  3. 上傳 chart 到 chart 倉庫或從倉庫中下載 chart
  4. 在Kubernetes集羣中安裝或卸載 chart
  5. 管理用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。it

  • Chart Rollback 過程
    Helm 將要回滾的 Release 的名稱傳遞給 Tiller。
    Tiller 根據 Release 的名稱查找 History。
    Tiller 從 History 中獲取上一個 Release。
    Tiller 將上一個 Release 發送給 Kubernetes 用於替換當前 Release。集羣

  • Chart 處理依賴說明 Tiller 在處理 Chart 時,直接將 Chart 以及其依賴的全部 Charts 合併爲一個 Release,同時傳遞給 Kubernetes。所以 Tiller 並不負責管理依賴之間的啓動順序。Chart 中的應用須要可以自行處理依賴關係。

相關文章
相關標籤/搜索