k8s之helm學習筆記 我是乙個粉刷匠

2022-09-23 06:00:11 字數 1716 閱讀 6467

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 repo list

安裝 chart 也很簡單,執行如下命令可以安裝 mysql。helm install stable/mysql

如果看到報錯,通常是因為 tiller 伺服器的許可權不足。

helm install --name roy-kafka incubator/kafkaerror: 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

參考鏈結:**:簡書

k8s學習筆記一

假設現在有五颱機器,我們給其中的三颱安裝了mysql,那麼這三颱機器上就有了mysql的服務程序,我們把三個服務程序叫做k8s的乙個service。在實際的應用中,通過在一台機器上部署多個docker例項來達到這種效果。然後給service貼個標籤,比如起個名字 mysql 那麼,在k8s容器中,它...

k8s命令學習筆記

發布 replicationcontroller.yaml到kubernetes集群中命令 master節點執行 kubectl create f mysql.yaml 檢視 kubectl get rc kubectl get pods nodes services ex.kubectl desc...

K8S學習總結(一)

kubernetes是容器集群管理系統,是乙個開源的平台,可以實現容器集群的自動化部署 自動化擴縮容 維護等功能。master元件可以再集群中任何節點上執行,通常將所有master元件執行於一台伺服器上,並且不會在該伺服器上執行任何使用者容器。kube apiserver用於提供資源請求 呼叫介面 ...