K8s-Helm

什麼是Helm

  • Helm是一個用於k8s的包管理器,使用helm以後就不須要了解k8s的yaml語法並編寫應用部署文件,能夠經過helm下載並在k8s上安裝須要的應用。
  • Helm還提供了k8s的軟件部署,刪除,升級,回滾應用的強大功能。

相關術語

  • Helm: 是一個命令行下的客戶端工具。主要用於 Kubernetes 應用程序 Chart 的建立、打包、發佈以及建立和管理本地和遠程的 Chart 倉庫。
  • Tiller: 是 Helm 的服務端,部署在 Kubernetes 集羣中。Tiller 用於接收 Helm 的請求,並根據 Chart 生成 Kubernetes 的部署文件( Helm 稱爲 Release ),而後提交給 Kubernetes 建立應用。Tiller 還提供了 Release 的升級、刪除、回滾等一系列功能。
  • Chart:Helm 的軟件包,採用 TAR 格式。相似於 APT 的 DEB 包或者 YUM 的 RPM 包,其包含了一組定義 Kubernetes 資源相關的 YAML 文件。
  • Repoistory Helm 的軟件倉庫,Repository 本質上是一個 Web 服務器,該服務器保存了一系列的 Chart 軟件包以供用戶下載,而且提供了一個該 Repository 的 Chart 包的清單文件以供查詢。Helm 能夠同時管理多個不一樣的 Repository。
  • Release: 使用 helm install 命令在 Kubernetes 集羣中部署的 Chart 稱爲 Release。Helm 中提到的 Release 和咱們一般概念中的版本有所不一樣,這裏的 Release 能夠理解爲 Helm 使用 Chart 包部署的一個應用實例。

Chart Install 過程

  1. Helm從指定的目錄或者tgz文件中解析出Chart結構信息
  2. Helm將指定的Chart結構和Values信息經過gRPC傳遞給Tiller
  3. Tiller根據Chart和Values生成一個Release
  4. Tiller將Release發送給Kubernetes用於生成Release

Chart Update過程

  1. Helm從指定的目錄或者tgz文件中解析出Chart結構信息
  2. Helm將要更新的Release的名稱和Chart結構,Values信息傳遞給Tiller
  3. Tiller生成Release並更新指定名稱的Release的History
  4. Tiller將Release發送給Kubernetes用於更新Release

Chart Rollback過程

  1. Helm將要回滾的Release的名稱傳遞給Tiller
  2. Tiller根據Release的名稱查找History
  3. Tiller從History中獲取上一個Release
  4. Tiller將上一個Release發送給Kubernetes用於替換當前Release

Helm Chart 結構

examples/
  Chart.yaml          # Yaml文件,用於描述Chart的基本信息,包括名稱版本等
  LICENSE             # [可選] 協議
  README.md           # [可選] 當前Chart的介紹
  values.yaml         # Chart的默認配置文件
  requirements.yaml   # [可選] 用於存放當前Chart依賴的其它Chart的說明文件
  charts/             # [可選]: 該目錄中放置當前Chart依賴的其它Chart
  templates/          # [可選]: 部署文件模版目錄,模版使用的值來自values.yaml和由Tiller提供的值
  templates/NOTES.txt # [可選]: 放置Chart的使用指南

Chart.yaml 文件

name: [必須] Chart的名稱
version: [必須] Chart的版本號,版本號必須符合 SemVer 2:http://semver.org/
description: [可選] Chart的簡要描述
keywords:
  -  [可選] 關鍵字列表
home: [可選] 項目地址
sources:
  - [可選] 當前Chart的下載地址列表
maintainers: # [可選]
  - name: [必須] 名字
    email: [可選] 郵箱
engine: gotpl # [可選] 模版引擎,默認值是gotpl
icon: [可選] 一個SVG或PNG格式的圖片地址

資源html

K8s-安裝
K8s-Pod
K8s-應用部署
K8s-Helmbash

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息