9.实践篇:让我们聊一聊运维利器(二):Job控制器

9.实践篇:让我们聊一聊运维利器(二):Job控制器

2020-02-06 20:03:38

Job控制器负责批量处理短暂的一次性任务,即仅执行一次的任务,并根据Spec字段的属性创建Pod资源,并持续监控Pod的状态,直至其状态为Completed。如果失败,则根据restartPolicy重启策略决定是否创建新的Pod再次重试任务。

1.What is Job?

Job控制器为一次性任务,任务完成时的状态为Completed,常用作文件日志备份、数据迁移操作,如下所示:

[root@centos-1 mainfasts]# kubectl get pod
NAME                     READY   STATUS              RESTARTS   AGE
job-demo-68tzh           0/1     Completed           0          29s
job-demo-kxdd8           0/1     Completed           0          29s
job-demo-nmpsn           1/1     Running             0          9s
job-demo-wshn4           0/1     ContainerCreating   0          0s

注意:job-demo-68tzh和job-demo-kxdd8控制器的状态为Completed

2.核心配置讲解

对于Job控制器来说,你需要注意的降级策略,碰到错误后,我们期望系统如何去处理:

restartPolicy: 
    “OnFailure”  #失败就重启
    "Never"      #就算失败,也不重启

3.实战

3.1.单任务串行

apiVersion: batch/v1
kind: Job
metadata:
  name: job-demo
spec:
  template:
    metadata:
      labels:
        app: myjob
    spec:
      containers:
      - name: myjob
        image: alphine
        command: ["/bin/sh", "-c", "sleep 10"]
      restartPolicy: Never                     #重启策略-never,就算失败,也不重启

3.2.多任务并行

apiVersion: batch/v1
kind: Job
metadata:
  name: job-demo
spec:
  completions: 5       #任务总量
  parallelism: 2       #并发量
  template:
    metadata:
      labels:
        app: myjob
    spec:
      containers:
      - name: myjob
        image: nginx
        command: ["/bin/sh", "-c", "sleep 10"]
      restartPolicy: Never                      #重启策略-never,就算失败,也不重启

提示:别忘了使用explain来提升自主查询配置字段的能力

@版权声明:51CTO独家出品,未经允许不能转载,否则追究法律责任


版权声明:
作者:WaterBear
链接:https://l-t.top/2045.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录