十六. k8s--helm安裝與使用

helm介紹

helm把一系列複雜的有狀態和無狀態服務的部署封裝起來(實際上就是對yaml文件的組織),而後你能夠暴露出一些自定義參數信息供用戶選擇,這樣部署就會變得簡單不少.linux

核心術語

  • Helm 是一個命令行下的客戶端工具。主要用於 Kubernetes 應用程序 Chart 的建立、打包、發佈以及建立和管理本地和遠程的 Chart 倉庫。
  • Tiller 是 Helm 的服務端,部署在 Kubernetes 集羣中。Tiller 用於接收 Helm 的請求,並根據 Chart 生成 Kubernetes 的部署文件( Helm 稱爲 Release ),而後提交給 Kubernetes 建立應用。Tiller 還提供了 Release 的升級、刪除、回滾等一系列功能。
  • Chart Helm 的軟件包,採用 TAR 格式。相似於 APT 的 DEB 包或者 YUM 的 RPM 包,其包含了一組定義 Kubernetes 資源相關的 YAML 文件
  • Repoistory Helm 的軟件倉庫,Repository 本質上是一個 Web 服務器,該服務器保存了一系列的 Chart 軟件包以供用戶下載,而且提供了一個該 Repository 的 Chart 包的清單文件以供查詢。Helm 能夠同時管理多個不一樣的 Repository。
  • Release 使用 helm install 命令在 Kubernetes 集羣中部署的 Chart 稱爲 Release

helm安裝

helm安裝

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 #進入解壓目錄會看到兩個可執行文件helm和tiller, 若採用容器化部署到kubernetes中,則能夠不用管tiller,只需將helm複製到/usr/bin目錄便可
cp helm /usr/bin/
echo "source <(helm completion bash)" >> /root/.bashrc # 命令自動補全

Tiller安裝

建立tiller相關的rbac

apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system
helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.3 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

由於牆, 因此指定國內tiller鏡像, tiller標籤和helm保持一致, 這裏是v2.14.3git

kubectl get pods -n kube-system -l app=helm
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

初始化後經過命令查看tiller pod建立狀況github

helm使用

添加chart源

因爲阿里的chart源可能更新不及時, 會比較老, 因此建議替換爲默認源或者微軟的azure源redis

參考連接: https://github.com/BurdenBear/kube-charts-mirrorapi

helm repo add stable  http://mirror.azure.cn/kubernetes/charts/
helm repo add incubator  http://mirror.azure.cn/kubernetes/charts-incubator/

基礎命令

命令 做用
搜索chart helm search CHARTNAME
查看chart詳細信息 helm inspect CHARTNAME
安裝 helm install --name mem1 stable/memcached [--dry-run]
獲取狀態信息 helm status mem1
列出release helm list [-a]
刪除release helm delete [--purge] mem1
下載chart helm fetch stable/redis
建立chart helm create CHARTNAME
語法檢測 helm lint CHARTNAME
打包 helm package CHARTNAME

參考連接

http://www.javashuo.com/article/p-zkxxbnhn-kc.html
https://jimmysong.io/kubernetes-handbook/practice/helm.htmlbash

相關文章
相關標籤/搜索