码迷,mamicode.com
首页 > 其他好文 > 详细

Job 失败了怎么办?- 每天5分钟玩转 Docker 容器技术(133)

时间:2018-02-23 10:46:28      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:dock   .com   desc   pad   radius   mil   border   get   none   

上一节讨论了 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。

技术分享图片

如果将 restartPolicy 设置为 OnFailure 会怎么样?下面我们实践一下,修改 myjob.yml 后重新启动。

技术分享图片

Job 的 SUCCESSFUL Pod 数量还是为 0,看看 Pod 的情况:

技术分享图片

这里只有一个 Pod,不过 RESTARTS 为 3,而且不断增加,说明 OnFailure 生效,容器失败后会自动重启。

下一节我们讨论提高 Job 执行效率的方法。

书籍:

1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html


2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html

技术分享图片

Job 失败了怎么办?- 每天5分钟玩转 Docker 容器技术(133)

标签:dock   .com   desc   pad   radius   mil   border   get   none   

原文地址:http://blog.51cto.com/cloudman/2072259

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!