Job 失败了怎么办?- 每天5分钟玩转 Docker 容器技术(133)
上一節(jié)討論了 Job 執(zhí)行成功的情況,如果失敗了會怎么樣呢?
修改 myjob.yml,故意引入一個錯誤:
先刪除之前的 Job:
如果將?restartPolicy?設置為?OnFailure?會怎么樣?下面我們實踐一下,修改 myjob.yml 后重新啟動。
運行新的 Job 并查看狀態(tài):
當前?SUCCESSFUL?的 Pod 數(shù)量為?0,查看 Pod 的狀態(tài):
可以看到有多個 Pod,狀態(tài)均不正常。kubectl describe pod?查看某個 Pod 的啟動日志:
日志顯示沒有可執(zhí)行程序,符合我們的預期。
下面解釋一個現(xiàn)象:為什么?kubectl get pod?會看到這么多個失敗的 Pod?
原因是:當?shù)谝粋€ Pod 啟動時,容器失敗退出,根據(jù)?restartPolicy: Never,此失敗容器不會被重啟,但 Job?DESIRED?的 Pod 是?1,目前?SUCCESSFUL?為?0,不滿足,所以 Job controller 會啟動新的 Pod,直到?SUCCESSFUL?為?1。對于我們這個例子,SUCCESSFUL?永遠也到不了?1,所以 Job controller 會一直創(chuàng)建新的 Pod。為了終止這個行為,只能刪除 Job。
如果將?restartPolicy?設置為?OnFailure?會怎么樣?下面我們實踐一下,修改 myjob.yml 后重新啟動。
Job 的?SUCCESSFUL?Pod 數(shù)量還是為?0,看看 Pod 的情況:
這里只有一個 Pod,不過?RESTARTS?為?3,而且不斷增加,說明?OnFailure?生效,容器失敗后會自動重啟。
下一節(jié)我們討論提高 Job 執(zhí)行效率的方法。
書籍:
1.《每天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html
2.《每天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html
總結
以上是生活随笔為你收集整理的Job 失败了怎么办?- 每天5分钟玩转 Docker 容器技术(133)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 银行工作人员违规发放贷款要坐牢吗?
- 下一篇: 印度商业和工业部长:未来苹果将有25%产