helm是kubernetes的包管理工具,用于簡化部署和管理 kubernetes 應用。用來管理charts——預先配置好的安裝包資源。
helm和charts的主要作用:
應用程式封裝
版本管理
依賴檢查
便于應用程式分發
helm是一個c/s架構的軟體,helm相當于一個用戶端,tiller是一個服務端
helm cli 是 helm 用戶端,可以在本地執行
tiller 是伺服器端元件,在 kubernetes 群集上運作,并管理 kubernetes 應用程式的生命周期
repository 是 chart 倉庫,helm用戶端通過http協定來通路倉庫中chart的索引檔案和壓縮包
helm工作原理
chart install 過程:
helm從指定的目錄或者tgz檔案中解析出chart結構資訊
helm将指定的chart結構和values資訊通過grpc傳遞給tiller
tiller根據chart和values生成一個release
tiller将release發送給kubernetes用于生成release
chart update過程:
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
檢視版本資訊
建立服務賬戶
初始化tiller
注意:離線環境中需要顯式指明 --tiller-image,并且需要與helm client的版本一緻,如上面的v2.14.3,下面通過環境變量方式自動選擇合适版本