♦ 交互流程: Helm -> Tiller -> API Serverlinux
♦ Chart:一個helm程序包,包含運行一個應用的工具和資源定義git
♦ Release: 在k8s集羣上運行的一個chart實例github
♦ Repository:用於存放和共享chart的倉庫;http/https服務器web
程序架構api
♦ Helm 本地客戶端,管理本地的chart倉庫,管理chart,與tiller服務器交互,發送chart,實例安裝、查詢、卸載等操做服務器
♦ Tiller 服務端,接收helm發來的chart和config,合併生成release;通常運行在k8s集羣上,運行在集羣以外,配置起來很是麻煩架構
安裝helm:app
# wget https://get.helm.sh/helm-v2.14.3-linux-amd64.tar.gz
# tar xf helm-v2.14.3-linux-amd64.tar.gz # cd linux-amd64/ # sudo cp helm /usr/bin/
集羣上安裝tiller:框架
♦ RBAC example : https://github.com/helm/helm/blob/master/docs/rbac.md工具
建立tiller的rbac
# cat tiller-rbac.yaml
apiVersion: v1 kind: ServiceAccount metadata: name: tiller namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: tiller roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: tiller namespace: kube-system
生成rbac:
# kubectl apply -f tiller-rbac.yaml
安裝tiller
# helm init --service-account tiller
Helm倉庫管理:
♦ helm官方可用的chart: http://hub.kubeapps.com
# helm repo update # 更新repo倉庫
# helm repo list # 查看當前使用的倉庫
# helm repo add xxx # 添加repo地址
# helm search xxx # 搜索應用
# helm inspect xxx # 查看chart的信息,會把chart下載到本地
# helm install xxx # 安裝chart
# helm delete xxx # 刪除release
# helm upgrade/rollback xxx # 升級/回滾
# helm list # 列出release
更多用法可使用 helm --help 查詢
Helm自定義Chart:
♦ https://helm.sh/docs/developing_charts/#charts
helm生成基礎框架
# helm create myapp
自定義修改myapp下的配置文件
檢查chart語法正確性
# helm lint myapp
打包自定義的chart
# help package myapp
打開自身做爲web服務器
# helm serve
刪除release並釋放release name
# helm delete --purge xxx
咱們能夠自定義修改chart包中的value.yaml來實現參數的修改