Helm入門文檔和介紹

概要

  helm 作爲kubernetes 的包管理。

主要概念

  • Helm
      是一個命令行下的客戶端工具
      Helm 通過kubernetes的Api 渲染 模版和通訊
      Helm 可以在你想要的任務地方運行
  • Tiller
      Tiller是Helm的服務端,部署在Kubernetes的集羣中。接收來自Helm的請求,
      並根據Chart生成K8s的部署文件(Release),然後提交給K8s去創建應用。
      Tiller還提供了Release的升級,刪除,回滾的功能性。
  • Charts
      Helm的軟件包,採用Tar格式。
  • Repoistory
      Helm的軟件倉庫,提供一系列Chart軟件包供用戶下載使用。
  • Release
      使用helm install 命令在k8s集羣部署的Chart成爲Relese;

安裝

包安裝

  前往the official releases page. 去下載符合系統的安裝包,本次採用macos 系統進行安裝。

  • 將包解壓後放置後的結構如下圖:
    在這裏插入圖片描述
  • 配置環境變量:
vi ~/.bash_profile
# 按照你的路徑配置
source ~/.bash_profile

安裝Tiller

  • 執行如下命令進行安Tiller到k8s的集羣中
helm init
  • 變更倉庫地址爲阿里倉庫
helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.16.9  --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

注意: v2.16.9 變更爲你對應的helm版本

  • 查看k8s民命空間爲kube-system中的tiller狀態
kubectl get po -n kube-system |grep tiller
  • 創建 Kubernetes 的服務帳號和綁定角色
kubectl create serviceaccount --namespace kube-system tiller

kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
  • 給 Tiller 的 deployments 添加剛纔創建的 ServiceAccount
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
  • 查看 Tiller deployments 資源是否綁定 ServiceAccount
kubectl get deploy -n kube-system tiller-deploy -o yaml | grep serviceAccount
  • 查看 Tiller 是否安裝成功
helm version 

  安裝成功後可以使用helm install xxx 進行安裝helm的應用。

  注意: 如果想要移除tiller 則可以執行如下命令:

kubectl delete deployment tiller-deploy --namespace kube-system

# 或者
helm reset

命令使用

  • helm 創建chart模版
helm create helm_test

生成的結構如下:

.
├── Chart.yaml
├── charts
├── templates
│   ├── NOTES.txt
│   ├── _helpers.tpl
│   ├── deployment.yaml
│   ├── ingress.yaml
│   ├── service.yaml
│   ├── serviceaccount.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yaml
  • helm 打包Chart模版
helm package helm_test
  • helm search 查找可用的 Chart 模板
helm search nginx
  • helm inspect 查看指定 Chart 的基本信息
helm inspect stable/nginx-ingress
  • helm 回滾版本
# helm rollback [RELEASE] [REVISION]
helm rollback happy-panda 1

Chart模版介紹和使用

Chart結構介紹

.
├── Chart.yaml                      # Chart 信息的 YAML 文件, 包括 Chart 的版本、名稱等
├── charts                          # 存放子Subchart , 是一個很棒的存在
├── templates                       # 該目錄下存放 Chart 所有的 K8s 資源定義模板
│   ├── NOTES.txt                   # 一段簡短使用說明的文本文件,用於安裝 Release 後提示用戶使用
│   ├── _helpers.tpl                # 存放可重用的模板片段
│   ├── deployment.yaml
│   ├── ingress.yaml
│   ├── service.yaml
│   ├── serviceaccount.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yaml                     # 當前 Chart 的默認配置的值. 注意:也可以使用 helm install --values=myvals.yaml nginx 來指定特定的配置文件

Chart使用

官方:Chart Template 的 使用的 DOCS

本來想寫這塊的使用,沒想到官方講解的很詳細。不過這裏列一下模版操作的坑,如下截圖:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章