helm 是什麼
每個成功的軟體平台都有乙個優秀的打包系統,比如 debian、ubuntu 的 apt,redhat、centos 的 yum。而 helm 則是 kubernetes 上的包管理器。
helm 的架構
helm 有兩個重要的概念:chart 和 release。
chart 是建立乙個應用的資訊集合,包括各種 kubernetes 物件的配置模板、引數定義、依賴關係、文件說明等。chart 是應用部署的自包含邏輯單元。可以將 chart 想象成 apt、yum 中的軟體安裝包。
release 是 chart 的執行例項,代表了乙個正在執行的應用。當 chart 被安裝到 kubernetes 集群,就生成乙個 release。chart 能夠多次安裝到同乙個集群,每次安裝都是乙個 release。
helm 是包管理工具,這裡的包就是指的 chart。
helm 包含兩個元件:helm 客戶端 和 tiller 伺服器。
簡單的講:helm 客戶端負責管理 chart;tiller 伺服器負責管理 release。
安裝和部署 helm 客戶端和 tiller 伺服器
將 helm 客戶端安裝在能夠執行 kubectl 命令的節點上
curl | bash
tiller 伺服器安裝非常簡單,只需要執行 helm init:
現在,使用 helm version 命令已經能夠檢視到客戶端和伺服器的版本資訊了。
使用 helm
helm 安裝成功後,可執行 helm search 檢視當前可安裝的 chart。例如找mysql :helm searchmysql
helm 倉庫 :helm repo list
helm 安裝時已經預設配置好了兩個倉庫:stable 和 local。stable 是官方倉庫,local 是使用者存放自己開發的 chart 的本地倉庫。
使用者可以通過 helm repo add 新增更多的倉庫,比如企業的私有倉庫,倉庫的管理和維護方法請參考官網文件
新增倉庫:
helm repo add incubator
helm repo list
安裝 chart 也很簡單,執行如下命令可以安裝 mysql。
helm install stable/mysql
如果看到報錯,通常是因為 tiller 伺服器的許可權不足。
helm install --name roy-kafka incubator/kafka
error: release roy-kafka failed: namespaces "default" is forbidden: user "system:serviceaccount:kube-system:default" cannot get resource "namespaces" in api group "" in the namespace "default"
執行如下命名新增許可權:
$ kubectl create serviceaccount --namespace kube-system tiller
$ kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
$ kubectl patch deploy --namespace kube-system tiller-deploy -p '}}}'
然後再次執行
helm install stable/mysql
helm入門學習 二 helm 命令
開始使用helm,執行helm init命令 這將安裝tiller到你的執行kubernetes集群。它還將設定所有必要的本地配置。命令釋義 helm search搜尋chart helm fetchhelm install將chart上傳到kubernetes helm list 獲取chart的...
helm基本使用
主要介紹三個命令 chart install chart upgrade chart rollback 1 使用chart部署乙個應用 查詢chart helm search repo helm search repo mysql 為什麼mariadb也在列表中?因為他和mysql有關。檢視char...
Helm使用詳解
使用 1 helm search 檢視charts stable是官方的 local是自己的 2 檢視repo helm repo list 3 安裝 helm install stable mysql 輸出主要三部分 chart 本次部署的描述資訊 name 是 release 的名字,因為我們沒...