[英]Deploying a kubernetes pods after a job is completed - helm
目標 - 在使用 helm 完成特定作業時開始部署 pod。
目前我正在使用 helm 來部署 configmap/pods/jobs。 當我進行“掌舵安裝”時,所有內容都會同時部署。 我可以添加延遲/觸發器說當特定作業完成時然后只部署其他 pod。
我嘗試使用“初始化容器”,但很難在“初始化容器”中獲取作業狀態
Helm chart hooks可以做到這一點。 Helm 可以一次部署一組資源,並等待它們准備就緒或完成。
對於您所描述的內容,使用注釋將作業標記為預安裝掛鈎就足夠了:
apiVersion: batch/v1
kind: Job
metadata:
annotations:
"helm.sh/hook": pre-install
在鈎子成功執行之前,不會部署圖表中的任何其他資源。 如果作業失敗,它將阻止部署任何其他資源。 這個pre-install
鈎子只在第一次安裝時運行,但是如果你想讓鈎子在升級或回滾時運行,有相應的鈎子可以做到這一點。
仍然有一些工作流很難用這種方式表達。 例如,如果您的服務包含一個數據庫並且您想要一個作業來運行遷移或種子數據,那么您無法真正部署數據庫 StatefulSet,然后在作業掛鈎上阻塞,然后部署其他所有內容; 您的應用程序仍然需要容忍可能未處於預期狀態的情況。
這有點超出 Helm 的駕駛能力。 您可以使用 Hooks 來獲得一些相對簡單的形式,但隨着復雜性的增加,許多人發現它們令人沮喪。 這種模式的更完整形式需要編寫一個運算符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.