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名称]