CronJob 实践:创建定时任务并观察 Job 与 Pod 调度

来自AI助手的总结
介绍了Kubernetes CronJob的创建、查看、日志与删除流程。
CronJob 实践:创建定时任务并观察 Job 与 Pod 调度

一、CronJob实践

1.1 CronJob创建

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

1.1 方式二: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 

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容