Job
Job接管的Pod通常都是用来执行一些一次性的任务,比如批处理程序,即执行完后容器就退出。
被Job接管的Pod,当Node发生故障时,该Pod会被自动安排到新的Node上。
创建Job
下面展示一个具体的Job的配置文件案例:
apiVersion: batch/v1
kind: Job
metadata:
name: myjob
spec:
backoffLimit: 5 # 指定Pod失败之前可以重试的次数(默认是6),可以配合Pod的spec.activeDeadlineSeconds使用
completions: 6 # 共有6个Job
parallelism: 2 # 每次并行最多进行2个;默认为1,所以默认情况下是一个Pod一个Pod创建
template: # (必须)Pod的模板
metadata:
labels:
app: myjob
name: myjob # 自动划分到Pods的labels中,job-name=myjob
spec:
containers:
- name: hello
image: busybox
command: ["echo", "hello k8s job!"]
restartPolicy: OnFailure # 重启策略(因为Job应当是执行完就结束,所以不能使用always)
activeDeadlineSeconds: 60 # 限制pod的运行时间,为了防止pod无休止的卡死,此处生效,会将pod退出,并将Job标记为失败
执行完成的Pod的STATUS
列会显示为Completed
:

Last updated
Was this helpful?