Helm Hooks學習

Hooks的作用

Helm 提供了一個 hook 機制,允許 chart 開發人員在 release 的生命週期中的某些點進行干預。

  • 在加載任何其他 chart 之前,在安裝過程中加載 ConfigMap 或 Secret。
  • 在安裝新 chart 之前執行作業以備份數據庫,然後在升級後執行第二個作業以恢復數據。
  • 在刪除 release 之前運行作業,以便在刪除 release 之前優雅地停止服務。

支持Hook類型

Helm提供瞭如下hook供chart開發者使用:

pre-install:在模板文件被渲染之後、而在Kubernetes創建任何資源創建之前執行。
post-install:在Kubernetes加載全部的資源之後執行。
pre-delete:在Kubernetes刪除任何resource之前執行。
post-delete:在一個release的全部資源被刪除之後執行。
pre-upgrade:在模板渲染之後,而在Kubernetes加載任何資源之前執行。
post-upgrade:在Kubernetes更新完全部resource之後執行。
pre-rollback:在模板被渲染之後、而在Kubernetes執行對全部resource的回滾之前。
post-rollback:在Kubernetes的全部resource已經被修改之後執行。

Hooks 和 release 的生命週期

Helm 爲 install 生命週期定義了兩個 hook:pre-installpost-install。如果 foo chart 的開發者實現了兩個 hook,那麼生命週期就像這樣改變:

  • 用戶運行 helm install foo
  • chart 被加載到 Tiller 中
  • 經過一些驗證後,Tiller 渲染 foo 模板
  • Tiller 準備執行 pre-install hook(將 hook 資源加載到 Kubernetes 中)
  • Tiller 會根據權重對 hook 進行排序(默認分配權重 0),並按相同權重的 hook 按升序排序。
  • Tiller 然後裝載最低權重的 hook(從負到正)
  • Tiller 等待,直到 hook“準備就緒”
  • Tiller 將產生的資源加載到 Kubernetes 中。請注意,如果設置 --wait 標誌,Tiller 將等待,直到所有資源都處於就緒狀態,並且在準備就緒之前不會運行 post-installhook。
  • Tiller 執行 post-install hook(加載 hook 資源)
  • Tiller 等待,直到 hook“準備就緒”
  • Tiller 將 release 名稱(和其他數據)返回給客戶端
  • 客戶端退出

Hooks的權重

設置方式

在這裏插入圖片描述

權重的執行順序

  • 由負到正
  • 從小到大

默認權重

  • 默認爲0

hook的刪除策略
在這裏插入圖片描述

  • “hook-succeeded” :指定 Tiller 應該在 hook 成功執行後刪除 hook。
  • “hook-failed” :指定如果 hook 在執行期間失敗,Tiller 應該刪除 hook。
  • “before-hook-creation” : 指定 Tiller 應在刪除新 hook 之前刪除以前的 hook。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章