当前位置: 首页 > news >正文

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

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

文章目录

  • 运行一次性任务与定时任务
    • @[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: picalc
        image: perl:5.34.0
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(1500)"]
      restartPolicy: Never
  backoffLimit: 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: hello
            image: busybox:1.28
            imagePullPolicy: IfNotPresent
            command:
            - /bin/sh
            - -c
            - date; echo Hello from the Kubernetes cluster
          restartPolicy: 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

相关文章:

  • Python 质数筛选:从入门到优化的 5 种方法
  • RPA VS AI Agent
  • 如何解决线程安全问题(不涉及分布式情况)
  • MTCNN 人脸识别
  • 对于GAI虚假信息对舆论观察分析
  • 月之暗面开源:多模态推理模型(激活2.8B) Kimi-VL-A3B-Thinking
  • PCDN收益高低的关键因素
  • Python p_tqdm包介绍
  • 2025年土建施工员考试题库及答案
  • js中较为不错的对象内置方法
  • Cribl 通过Splunk search collector 来收集数据
  • 【时时三省】(C语言基础)选择结构程序综合举例
  • 第十五届蓝桥杯C/C++B组国赛真题讲解(分享去年比赛的一些真实感受)
  • 什么是回表?哪些数据库存在回表?
  • dcsdsds
  • ROS2:命令行学习
  • AUTOSAR图解==>AUTOSAR_SWS_MemoryMapping
  • sql server分析表大小
  • 《Python星球日记》第27天:Seaborn 可视化
  • 单片机基础知识-STM32
  • 无锡网站建设设计公司/深圳新闻最新事件
  • 网页设计网站建设过程报告/长沙企业关键词优化哪家好
  • 赣州省住房和城乡建设厅网站/东莞百度快速优化排名
  • 苏州网站建设科技有限公司/360优化大师app
  • 长尾网站搜索引擎/南宁seo多少钱报价
  • 有微重庆网站吗/搜索引擎的网站