helm-chart7,調試與hook
阿新 • • 發佈:2018-08-27
nta 錯誤 debug lease contain tar 加權 升級 value
調試
幾個命令可以幫助進行調試
helm lint 首選工具,返回錯誤和警告信息。
helm install --dry-run --debug:服務器會渲染你的模板,然後返回結果清單文件。
helm get manifest:這是查看服務器上安裝的模板的方法。
如果yaml文件沒有解析,想看看生成了什麽時,檢查yaml文件一個簡單方法是註釋模板中的問題部分,然後重新運行helm install --dry-run --debug
hooks
hook 機制,為允許在release的生命周期中的某些點進行幹預,執行一些操作,比如 備份數據庫,確保先後順序等。
可用的hook 節點:
預安裝pre-install::在模板渲染後執行,但在Kubernetes中創建任何資源之前執行。 安裝後post-install:在所有資源加載到Kubernetes後執行 預刪除pre-delete:在從Kubernetes刪除任何資源之前執行刪除請求。 刪除後post-delete:刪除所有release的資源後執行刪除請求。 升級前pre-upgrade:在模板渲染後,但在任何資源加載到Kubernetes之前執行升級請求(例如,在Kubernetes應用操作之前)。 升級後post-upgrade:在所有資源升級後執行升級。 預回滾pre-rollback:在渲染模板之後,但在任何資源已回滾之前,在回滾請求上執行。 回滾後post-rollback:在修改所有資源後執行回滾請求。
hook 的任務執行的時候,Tiller會阻塞;任務執行失敗,則應用發布失敗。
hook 具有權重,以數字表示,可為負。當一個hook聲明了多個資源時,這些資源將被串行執行。如果他們有hook權重,他們按照加權順序執行。
Hook創建的資源不作為release的一部分進行跟蹤或管理。一旦Tiller驗證hook已經達到其就緒狀態,就不再跟蹤它了,即無法再對其進行操作。所以hook 創建的資源,無法使用 helm delete 刪除。可以在hook 中同時寫上刪除的代碼,或者指定其刪除策略:"helm.sh/hook-delete-policy"
"hook-succeeded": 指定Tiller應該在hook成功執行後刪除hook。 "hook-failed": 指定如果hook在執行期間失敗,Tiller應該刪除hook。 "before-hook-creation": 指定Tiller應在刪除新hook之前刪除以前的hook。 同時制定兩個:"helm.sh/hook-delete-policy": "hook-succeeded,hook-failed"
hook 示例:
apiVersion: batch/v1 kind: Job metadata: name: "{{.Release.Name}}" labels: heritage: {{.Release.Service | quote }} release: {{.Release.Name | quote }} chart: "{{.Chart.Name}}-{{.Chart.Version}}" annotations: # hook 聲明 # This is what defines this resource as a hook. Without this line, the # job is considered part of the release. "helm.sh/hook": post-install "helm.sh/hook-weight": "-5" "helm.sh/hook-delete-policy": hook-succeeded spec: # hook hook 資源,任務:起鏡像,sleep 十秒。 template: metadata: name: "{{.Release.Name}}" labels: heritage: {{.Release.Service | quote }} release: {{.Release.Name | quote }} chart: "{{.Chart.Name}}-{{.Chart.Version}}" spec: restartPolicy: Never containers: - name: post-install-job image: "alpine:3.3" command: ["/bin/sleep","{{default "10" .Values.sleepyTime}}"]
一個資源可以有多個hook:
annotations:
"helm.sh/hook": post-install,post-upgrade
helm-chart7,調試與hook