helm是什么

helm是kubernetes生態系統中的一個軟件包管理工具,類似ubuntu的apt,centos的yum或python的pip一樣,專門負責管理kubernetes應用資源;使用helm可以對kubernetes應用進行統一打包、分發、安裝、升級以及回退等操作。

helm利用Chart來封裝kubernetes原生應用程序的一些列yaml文件,可以在部署應用的時候自定義應用程序的一些Metadata,以便于應用程序的分發。

helm為什么出現

利用Kubernetes部署一個應用,需要Kubernetes原生資源文件如deployment、replicationcontroller、service或pod 等。這些k8s 資源過于分散,不方便進行管理,直接通過 kubectl 來管理一個應用,你會發現這十分蛋疼。

而對于一個復雜的應用,會有很多類似上面的資源描述文件,如果有更新或回滾應用的需求,可能要修改和維護所涉及的大量資源文件,且由于缺少對發布過的應用版本管理和控制,使Kubernetes上的應用維護和更新等面臨諸多的挑戰,而Helm可以幫我們解決這些問題:

  • 如何統一管理、配置和更新這些分散的 k8s 的應用資源文件
  • 如何分發和復用一套應用模板
  • 如何將應用的一系列資源當做一個軟件包管理