iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 26
0

Helm是k8s的應用程序管理器(the package manager for k8s), 類似Linux上的yumapt-get, 是一個將手動部署自動化的應用概念, 可以用來幫助用戶查找, 分享及使用K8s應用程序, 核心打包功能組件稱為chart, 可支援變數替換和條件判斷式, 服務升級和回滾等, 並能支援部署後測試。
Helm將K8s資源(Deployments, Services, ConfigMap 等)應用相關的配置打包到一個Chatrs中, 它透過Charts來管理操作, 使用Charts管理流程, 包括從0開始創建Charts, 將Charts與其關聯的文件打包成統一格式, 把Charts儲存在倉庫中等等, 完成測試後會將各個Charts保存到Charts倉庫進行儲存和分發, 同時也支援版控, Helm簡化了部署過程中的版本控制, 打包, 發布, 刪除和更新等操作。

  • Helm 概念

    • Charts: 一個Helm package, 內容包含運行一個K8s 應用所需的image, 依賴關係和資源定義等。
    • Repository: Charts倉庫, 用於集中儲存和分發Charts
    • Config: 應用程式實體化安裝運行時需要使用的配置訊息
    • Release: 應用程式運行在K8中的一個Charts實例, 在同一個cluster中, 一個charts可以使用不同的Config重複安裝多次, 每次安裝都會創建一個新的Release。
  • Helm 優點

    • 管理複雜的應用: charts提供了可重複使用的應用安裝定義
    • 升級方便: 可以使用就地升級和自定義鉤子來解決更新的難題
    • 分享簡單: Chatrs可以輕易地通過public或private的服務完成版本化、分享和主機構建。
    • 回滾: 使用helm rollback就可以輕鬆的實現快速回滾。
  • Lifecycle hooks

    • pre-install: 樣版產生後並且建立物件前
    • post-install: 建立完物件後
    • pre-delete: 任何物件刪除前
    • post-delete: 全部物件刪除後
    • pre-upgrade: 樣版產生後並且更新物件前
    • post-upgrade: 更新完物件後
    • pre-rollback: 樣版產生後 rollback 物件前
    • post-rollback: rollback 後
    • crd-install: 在檢測前
  • helm 部署結構
    這是我們專案內部署的helm結構:
    https://ithelp.ithome.com.tw/upload/images/20201004/201296566LyVqcvarG.png

    • Chart.yaml: chart 描述檔
    • values.yaml: chart 內變數設定
    • templates/NOTES.txt: chart 安裝完後的 usage guide
    • templates/_helpers.tpl: 可在 charts 內用的 helper function
    • templates/*.yaml
      • *.yaml: k8s object yaml

Helm 2 to helm 3

我們專案目前使用的是helm 3, 這是參考的書籍【kubernetes 進階實戰】使用的還是helm 2, helm 2 和 helm 3最大差別在Tiller的移除。

今日小結

讀完HELM, 我由衷感謝團隊裡強大的同事們建構了一個非常方便的k8s環境讓我們使用!/images/emoticon/emoticon41.gif


上一篇
day 25 HPA
下一篇
day27 Resource Quotas and Limit Ranges
系列文
K8S - 30天從擦槍到提槍上陣學習筆記。30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言