共計 721 個字符,預計需要花費 2 分鐘才能閱讀完成。
這期內容當中丸趣 TV 小編將會給大家帶來有關 Job 失敗了怎么辦,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
如果 Job 失敗了會怎么樣呢?
修改 myjob.yml,故意引入一個錯誤:
先刪除之前的 Job:
如果將 restartPolicy 設置為 OnFailure 會怎么樣?下面我們實踐一下,修改 myjob.yml 后重新啟動。
運行新的 Job 并查看狀態:
當前 SUCCESSFUL 的 Pod 數量為 0,查看 Pod 的狀態
可以看到有多個 Pod,狀態均不正常。kubectl describe pod 查看某個 Pod 的啟動日志:
日志顯示沒有可執行程序,符合我們的預期。
下面解釋一個現象:為什么 kubectl get pod 會看到這么多個失敗的 Pod?
原因是:當第一個 Pod 啟動時,容器失敗退出,根據 restartPolicy: Never,此失敗容器不會被重啟,但 Job DESIRED 的 Pod 是 1,目前 SUCCESSFUL 為 0,不滿足,所以 Job controller 會啟動新的 Pod,直到 SUCCESSFUL 為 1。對于我們這個例子,SUCCESSFUL 永遠也到不了 1,所以 Job controller 會一直創建新的 Pod。為了終止這個行為,只能刪除 Job。
Job 的 SUCCESSFUL Pod 數量還是為 0,看看 Pod 的情況
這里只有一個 Pod,不過 RESTARTS 為 3,而且不斷增加,說明 OnFailure 生效,容器失敗后會自動重啟。
上述就是丸趣 TV 小編為大家分享的 Job 失敗了怎么辦了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注丸趣 TV 行業資訊頻道。