helm 可以理解為 Kubernetes 的包管理工具,可以方便地發現、共享和使用為Kubernetes構建的應用。
一、基本概念
1.Helm的三個基本概念Chart:Helm應用(package),包括該應用的所有Kubernetes manifest模版,
類似於YUM RPM或Apt dpkg文件Repository:Helm package存儲倉庫Release:chart的部署實例,每個chart可以部署一個或多個release
2.Helm工作原理:Helm包括兩個部分,helm客戶端和tiller服務端。
the client is responsible for managing charts, and the server is responsible for managing releases.
3.helm客戶端helm客戶端是一個命令行工具,負責管理charts、reprepository和release。
它通過gPRC API(使用kubectl port-forward將tiller的端口映射到本地,然后再通過映射后的端口跟tiller通信)向tiller發送請求,
並由tiller來管理對應的Kubernetes資源。Helm客戶端的使用方法參見Helm命令
4.tiller服務端tiller接收來自helm客戶端的請求,並把相關資源的操作發送到Kubernetes,負責管理(安裝、查詢、升級或刪除等)和跟蹤Kubernetes資源。
為了方便管理,tiller把release的相關信息保存在kubernetes的ConfigMap中。tiller對外暴露gRPC API,供helm客戶端調用。