一、CronJob实践

2.7.1 CronJob创建

2.7.1.1 方式一:命令行格式

1、创建一个job

[root@k8s-master01 ~]# k create cj hello --image=registry.cn-hangzhou.aliyuncs.com/abroad_images/busybox:1.28 --schedule='*/1 * * * *' -- echo "Hello,Job"

2、查看job

[root@k8s-master01 ~]# kg cj
NAME    SCHEDULE      TIMEZONE   SUSPEND   ACTIVE   LAST SCHEDULE   AGE
hello   */1 * * * *   <none>     False     0        <none>          27s

回显内容说明:

  • SUSPEND:是否暂停调度
  • ACTIVE:当前处于活跃的 Job 个数
  • LAST SCHEDULE:上一次成功调度的时间
  • TIMEZONE:CronJob 执行调度时所使用的时区,默认为 UTC

3、等待 1 分钟后,即可查看到调度的 Job

# 查看job
[root@k8s-master01 ~]#  kg job
NAME             STATUS     COMPLETIONS   DURATION   AGE
hello-29042354   Complete   1/1           3s         75s
hello-29042355   Complete   1/1           3s         15s

# 查看pod
[root@k8s-master01 ~]# kgp
NAME                   READY   STATUS      RESTARTS   AGE
hello-29042354-vd97h   0/1     Completed   0          71s
hello-29042355-hd6jv   0/1     Completed   0          11s

4、查看执行日志信息

[root@k8s-master01 ~]# k logs -f hello-29042355-hd6jv
Hello,Job

5、环境复原

[root@k8s-master01 ~]# k delete cj hello

2.7.1.2 方式二:yaml文件

1、创建一个job模板文件

[root@k8s-master01 ~]# k create cj hello --image=registry.cn-hangzhou.aliyuncs.com/abroad_images/busybox:1.28 --schedule='*/1 * * * *' --dry-run=client -oyaml -- echo "Hello,Job" > cronjob.yaml 

2、重新定义一个job

[root@k8s-master01 ~]# vim  cronjob.yaml 
apiVersion: batch/v1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: '*/1 * * * *'
  jobTemplate:
    metadata:
      name: hello
    spec:
      template:
        metadata:
        spec:
          containers:
          - command:
            - echo
            - Hello,Job
            image: registry.cn-hangzhou.aliyuncs.com/abroad_images/busybox:1.28
            name: hello
            resources: {}
          restartPolicy: OnFailure

3、创建cronjob

[root@k8s-master01 ~]# kaf  cronjob.yaml 

4、查看创建情况

# 查看cronjob
[root@k8s-master01 ~]# kg cj
NAME    SCHEDULE      TIMEZONE   SUSPEND   ACTIVE   LAST SCHEDULE   AGE
hello   */1 * * * *   <none>     False     0        29s             105s

# 查看job
[root@k8s-master01 ~]# kg job
NAME             STATUS     COMPLETIONS   DURATION   AGE
hello-29042360   Complete   1/1           3s         2m20s
hello-29042361   Complete   1/1           3s         80s
hello-29042362   Complete   1/1           3s         20s

# 查看pod
[root@k8s-master01 ~]# kgp
NAME                   READY   STATUS      RESTARTS   AGE
hello-29042360-4hzl8   0/1     Completed   0          2m31s
hello-29042361-ccqc4   0/1     Completed   0          91s
hello-29042362-gk9bf   0/1     Completed   0          31s

cronjob回显内容说明:

  • SUSPEND:是否暂停调度
  • ACTIVE:当前处于活跃的 Job 个数
  • LAST SCHEDULE:上一次成功调度的时间
  • TIMEZONE:CronJob 执行调度时所使用的时区,默认为 UTC

5、查看执行日志信息

[root@k8s-master01 ~]# k logs -f hello-29042362-gk9bf
Hello,Job

6、环境复原

[root@k8s-master01 ~]# k delete -f cronjob.yaml