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。

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

  • Chart 處理依賴說明
    Tiller 在處理 Chart 時,直接將 Chart 以及其依賴的所有 Charts 合並為一個 Release,同時傳遞給 Kubernetes。因此 Tiller 並不負責管理依賴之間的啟動順序。Chart 中的應用需要能夠自行處理依賴關系。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM