2025,每天10分钟,跟我学K8S(十六)- Job
本章节来学习K8s中一种新的资源对象Job。
什么是Job?
Job是Kubernetes中的一个核心概念,用于在集群中运行独立的任务。与其他控制器(如ReplicaSet和Deployment)不同,Job关注的是执行一次性任务而不是保持指定数量的实例运行。
Job的主要作用
- 独立任务执行:Job确保在集群中运行独立的任务,并在任务成功完成后自动终止。
- 任务的重试:Job支持定义任务的重试策略,以应对任务执行失败的情况。
- 并行任务:Job允许定义多个并行执行的任务,以提高任务执行效率。
Job的例子
我们用Job这个资源对象来创建一个任务,我们定一个Job来执行一个倒计时的任务,定义YAML文件:
apiVersion: batch/v1
kind: Job
metadata:
name: job-test
spec:
template:
metadata:
name: job-test
spec:
restartPolicy: Never
containers:
- name: counter
image: m.daocloud.io/docker.io/busybox
command:
- "bin/sh"
- "-c"
- "for i in 1 2 3 4 5 6 7 8 9 ; do echo $i; done"
注意Job的RestartPolicy仅支持Never和OnFailure两种,不支持Always,我们知道Job就相当于来执行一个批处理任务,执行完就结束了,如果支持Always的话是不是就陷入了死循环了?
然后来创建该Job,保存为job-demo.yaml:
root@k8s-master:~# kubectl apply -f job.yaml
job.batch/job-test created
通过命令查看当前的Job资源对象:
# kubectl get pod
发现job的状态为Completed,表示这个job已经完成,通过kubectl logs来查看当前任务的执行结果。看到yaml里面执行的shell命令也运行完毕

浙公网安备 33010602011771号