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


helm介紹

helm把一系列復雜的有狀態和無狀態服務的部署封裝起來(實際上就是對yaml文件的組織),然后你可以暴露出一些自定義參數信息供用戶選擇,這樣部署就會變得簡單很多.

核心術語

  • 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.3

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創建情況

helm使用

添加chart源

由於阿里的chart源可能更新不及時, 會比較老, 所以建議替換為默認源或者微軟的azure源

參考鏈接: https://github.com/BurdenBear/kube-charts-mirror

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

參考鏈接

https://www.cnblogs.com/tylerzhou/p/11100649.html
https://jimmysong.io/kubernetes-handbook/practice/helm.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM