k8s(job)

1.什么是job

容器按照持续运行的时间可分为两类:服务类容器和工作类容器
服务类容器通常持续提供服务,需要一直运行,比如HTTPServer、Daemon等。工作类容器则是一次性任务,比如批处理程序,完成后容器就退出
Kubernetes的Deployment、ReplicaSet和DaemonSet都用于管理服务类容器;对于工作类容器,我们使用Job

2. 配置文件myjob.yml

我们在这个实验中要执行一个新的job服务
在这里插入图片描述

batch/v1 # 是当前Job的apiVersion
指明当前资源的类型为Job
restartPolicy指定什么情况下需要重启容器。对于Job,只能设置为Never或者OnFailure。对于其他controller(比如Deployment),可以设置为Always

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. job失败的情况

在这里插入图片描述
我们做个试验,修改myjob.yml,故意引入一个错误
在这里插入图片描述
在这里插入图片描述

kubectl describe pod # 查看某个Pod的启动日志

在这里插入图片描述
下面解释一个现象:为什么kubectl get pod会看到这么多个失败的Pod?
原因是:当第一个Pod启动时,容器失败退出,根据restartPolicy:Never,此失败容器不会被重启,但JobDESIRED的Pod是1,目前SUCCESSFUL为0,不满足,所以Job controller会启动新的Pod,直到SUCCESSFUL为1。对于我们这个例子,SUCCESSFUL永远也到不了1,所以Job controller会一直创建新的Pod。为了终止这个行为,只能删除Job

4.将restartPolicy设置为OnFailure

如果将restartPolicy设置为OnFailure会怎么样?下面我们实践一下,修改myjob.yml后重新启动
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值