欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > 运行一次性任务与定时任务

运行一次性任务与定时任务

2025/4/15 17:24:40 来源:https://blog.csdn.net/qq_65998623/article/details/147181382  浏览:    关键词:运行一次性任务与定时任务

运行一次性任务与定时任务

文章目录

  • 运行一次性任务与定时任务
    • @[toc]
    • 一、使用Job运行一次性任务
      • 1.创建一次性任务
      • 2.测试一次性任务
      • 3.删除Job
    • 二、使用CronJob运行定时任务
      • 1.创建定时任务
      • 2.测试定时任务
      • 3.删除CronJob

一、使用Job运行一次性任务

1.创建一次性任务

(1)创建Job配置文件

[root@master ~]# cat picalc-job.yaml 
apiVersion: batch/v1       # 如果Kubernetes版本低于1.21,则改用batch/v1beta1
kind: Job                     # 资源类型为Job
metadata:name: picalc
spec:template:                     # 创建Pod所依据的模板spec:containers:               # 容器运行任务- name: picalcimage: perl:5.34.0command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(1500)"]restartPolicy: NeverbackoffLimit: 4              # 指定Job失败后进行重试的次数

(2)创建Job

[root@master ~]# kubectl create -f picalc-job.yaml 
job.batch/picalc created

2.测试一次性任务

(1)监视创建的Job

[root@master ~]# kubectl get jobs --watch
NAME     COMPLETIONS   DURATION   AGE
picalc   0/1           49s        49s

(2)查看创建的Pod

[root@master ~]# kubectl get pod -o wide
NAME           READY   STATUS              RESTARTS   AGE     IP       NODE    NOMINATED NODE   READINESS GATES
picalc-jvdqz   0/1     ContainerCreating   0          2m22s   <none>   node2   <none>           <none>

(3)查看该Pod的日志

[root@master ~]# kubectl logs -f picalc-jvdqz

3.删除Job

[root@master ~]# kubectl delete jobs/picalc
job.batch "picalc" deleted

二、使用CronJob运行定时任务

1.创建定时任务

(1)创建CronJob配置文件

[root@master ~]# vim hello-cronjob.yaml
[root@master ~]# cat hello-cronjob.yaml 
apiVersion: batch/v1          # 如果Kubernetes版本低于1.21,则改用batch/v1beta1
kind: CronJob                   # 资源类型为CronJob
metadata:name: hello
spec:schedule: "*/1 * * * *"     # 时间调度,这里为每分钟执行一次
# 通过Job模板指定需要运行的任务。CronJob基于Job进行实现,以下就是Job资源的定义jobTemplate:                  spec:template:spec:containers:- name: helloimage: busybox:1.28imagePullPolicy: IfNotPresentcommand:- /bin/sh- -c- date; echo Hello from the Kubernetes clusterrestartPolicy: OnFailure

(2)创建CronJob

[root@master ~]# kubectl create -f hello-cronjob.yaml 
cronjob.batch/hello created

2.测试定时任务

(1)获取CronJob的状态

[root@master ~]# kubectl get cronjob hello
NAME    SCHEDULE      SUSPEND   ACTIVE   LAST SCHEDULE   AGE
hello   */1 * * * *   False     1        19s             47s

(2)监视创建的Pod

[root@master ~]# kubectl  get jobs --watch
NAME             COMPLETIONS   DURATION   AGE
hello-29074496   1/1           45s        63s
hello-29074497   1/1           3s         3s

(3)查看创建的Pod

[root@master ~]# kubectl get pod -o wide
NAME                   READY   STATUS        RESTARTS   AGE    IP               NODE    NOMINATED NODE   READINESS GATES
hello-29074496-4b5ws   0/1     Completed     0          108s   10.244.166.173   node1   <none>           <none>
hello-29074497-b9tgj   0/1     Completed     0          48s    10.244.166.174   node1   <none>           <none>

(3)查看最后一次调度任务创建的Pod日志

[root@master ~]# kubectl logs -f hello-29074497-b9tgj
Sat Apr 12 14:57:00 UTC 2025
Hello from the Kubernetes cluster
[root@master ~]# 

3.删除CronJob

[root@master ~]# kubectl delete cronjob hello
cronjob.batch "hello" deleted

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词