Job当运行任务的容器完成工作后,就会成功退出。适合应用在一次性任务上,CronJob控制器是可以在指定的时间点运行。
1.job
1.1一次性任务
一般只会启动一个Pod。Pod终止后Job就结束了
1.1.1创建模板文件
vi nginxjob1.yml
内容如下:
说明:
apiVersion:使用的Api的版本
kind:当前要创建的资源对象
metadata:该资源对象的元数据
spec:该资源对象的具体设置
template:Pod模板
1.1.2执行执行命令使用1.1.1的模板创建job一次性任务
kubectl apply -f nginxjob1.yml
1.1.3查看job
kubectl get job
说明:
COMPLETIONS:执行进度
DURATION:Job的执行时间
查看job对应的job
kubectl get pod -o wide
查看日志
kubectl logs [Pod名称]
1.1.4删除job
以上模板创建的Job执行完后不会自动删除,需要手动删除
kubectl delete job nginxjob1
1.1.5创建自动删除的job
开启手动
(1)修改kube-scheduler.yaml、kubeapiserver.yaml、kube-controller- manager.yaml在spec部分加
入 – –feature-gates=TTLAfterFinished=true
(2)在创建job模板中的spec下增加属性 ttlSecondsAfterFinished指定执行结束后等待多少秒才可删除Job
1.2串行式任务
顺序多次执行某一任务,直至任务全部执行结束
1.2.1创建模板文件
修改1.1.1模板增加spec.completions属性指定执行次数
vi nginxjob2.yml
内容如下:
1.2.2执行命令使用1.2.1的模板创建串行job
kubectl apply -f nginxjob2.yml
查看job
kubectl get job
kubectl get pods -o wide
1.3并行式任务
1.3.1创建并行job模板
修改1.1.1模板增加并发数spec.parallelism和总任务的执行次数spec.completions
vi nginxjob3.yml
内容如下
1.3.1执行创建job
kubectl apply -f nginxjob3.yml
2.CronJob
可以指定某一时间运行一次或者指定周期运行
2.1创建模板文件
vi nginxcornjob.yml
内容如下:
schedule: “*/1 * * * *” 指定每一分钟执行一次
3.2创建cornjob控制器
kubectl apply -f nginxcornjob.yml
查看corn控制器
kubectl get CronJob
删除cornjob控制器
kubectl delete CronJob [CronJob名称]