Kubernetes軟件包管理系統-Helm架構

Kubernetes Helm 架構

Helm Chart簡介

Helm是一個用於Kubernetes的包管理工具。 
每一個包稱爲一個Chart,一個Chart是一個目錄(通常狀況下會將目錄進行打包壓縮,造成name-version.tgz格式的單一文件,方便傳輸和存儲)。 
一個Chart是Kubernetes部署文件的集合,使用Chart能夠方便的在Kubernetes中部署一組應用。html

Helm組件

Helm:架構

Helm是一個cli客戶端,能夠完成以下內容:工具

  • 建立Chart
  • 打包Chart,打包成name-version.tgz格式
  • 調試Chart
  • 建立本地Chart倉庫
  • 管理本地和遠程Chart倉庫
  • 與Tiller通訊並完成Chart的安裝,升級,刪除,回滾,查看等操做

Tiller

Tiller是一個Chart管理服務端,Tiller接收Helm的請求,並根據Chart生成Kubernetes的部署文件(稱爲一個Release),而後提交給Kubernetes建立應用。 
Tiller有以下功能:spa

  • 監聽來自Helm的請求
  • 根據請求提交的Chart與Config生成一個Release
  • 將Release提交給Kubernetes,而且跟蹤Release的狀態
  • 提供Release的升級,刪除,回滾等功能

Helm通訊過程

Helm過程

Chart Install 過程:調試

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

Chart Update過程:htm

  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

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

相關文章
相關標籤/搜索