1、job使用场景
容器按照持续运行的时间可分为两类:服务类容器和工作类容器。
服务类容器通常持续提供服务,需要一直运行,比如http server,mysql db等。工作类容器则是一次性任务,比如批处理程序,完成后容器就退出。
k8s中的的Deployment、ReplicaSet和DaemonSet都用于管理服务类容器,对于工作类容器,可以使用Job。
2、job应用
先创建一个基于job的yml文件,内容如下:
apiVersion: batch/v1
kind: Job
metadata:
name: myjob
spec:
template:
spec:
containers:
- name: job
image: busybox
command: ["echo","hello k8s"]
restartPolicy: Never
其中:
- batch/v1是当前Job的apiVersion。
- kind指明当前资源的类型为Job。
restartPolicy用来指定什么情况下需要重启容器:
- Never表示不论状态为何, kubelet都不重启该容器
- OnFailure表示容器终止运行,且退出码不为0时重启
- Always表示容器失效时,kubelet自动重启该容器