9.实践篇:让我们聊一聊运维利器(二):Job控制器
9.实践篇:让我们聊一聊运维利器(二):Job控制器
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独家出品,未经允许不能转载,否则追究法律责任
文章目录
关闭