【kubernetes】Cronjob: 定时任务

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 【kubernetes】Cronjob: 定时任务

Cron JOb 的定时表达式,基本上照搬了 Linux Cron 的表达式,格式如下:


Miniute Hours DayofMonth Month DayofWeek



其中每个域都可以出现的字符如下:


  • Minutes:可出现“,” “-” “*” “/” 这 4 个字符,有效范围为 0~59 的整数
  • Hours:可出现“,” “-” “*” “/” 这 4 个字符,有效范围为 0~23 的整数
  • DayofMonth:可出现“,” “-” “*” “/” “?” “L” “W” “C” 这 8 个字符有效范围为 1~31 的整数
  • Month:可出现 “,” “-” “*” “/” 这 4 个字符,有效范围为 1~12 的整数或 JAN-DEC。
  • DayofWeek:可出现 “,” “-” “*” “/” “?” “L” “C” “#” 这 8 个字符,有效范围为 1~7 的整数或 SUN~SAT。1 表示星期天,2 表示星期一,依次类推。



表达式中的特殊字符“*”与“/”的含义如下。


  • :表示匹配该域的任意值,加入在 Minutes 域使用 “”,则表示每分钟都会触发事件
  • /:表示从起始时间开始触发,然后每隔固定时间触发一次,例如在 Minutes 域设置为 5/20,则意味着第一次触发在第 5min 时,接下来每 20min 触发一次,将在第 25min,第 45min等时刻分别触发。


比如,我们要每隔 1min 执行一次任务,则 Cron 表达式如下:


*/1 * * * *




一、编辑 Cron Job 的配置文件


[root@k8s0 test_cornjob]# cat >cron.yaml<<EOF
apiVersion: batch/v1 
kind: CronJob
metadata:
  name: hello
spec: 
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox:1.28
            imagePullPolicy: IfNotPresent
            command:
            - /bin/sh
            - -c
            - date; echo Hello QiJing from the kubernetes cluster
          restartPolicy: OnFailure
EOF




二、执行 Cron Job


[root@k8s0 test_cornjob]# kubectl create -f cron.yaml 
cronjob.batch/hello created



三、验证


image.png


可以看到,在“任务”面板确实每分钟都有一个任务在执行。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
存储 Kubernetes 负载均衡
【Kubernetes系统原理、核心资源、Pod原理与创建及生命周期管理、Job、Cronjob、Statefulset、Service负载均衡Ingress】
【Kubernetes系统原理、核心资源、Pod原理与创建及生命周期管理、Job、Cronjob、Statefulset、Service负载均衡Ingress】
388 2
|
6月前
|
Kubernetes Linux 调度
k8s-高级调度-CronJob 计划任务
k8s-高级调度-CronJob 计划任务
|
11月前
|
资源调度 Kubernetes 调度
从 Linux Crontab 到 K8s CronJob,定时任务正在经历怎样的变革
从 Linux Crontab 到 K8s CronJob,定时任务正在经历怎样的变革
118908 59
|
Kubernetes Cloud Native Ubuntu
【探索 Kubernetes|作业管理篇 系列 16】离线业务 Job、CronJob
大家好,我是秋意零。 在上一篇中,我们讲解了 DaemonSet 控制器,相信你以及理解了其的工作过程,分为三部。一是,获取所有 Node 节点中的 Pod;二是,判断是否有符合 DaemonSet 管理的 Pod;三是,通过“亲和性”和“容忍”来精确控制并保证 Pod 在目标节点运行。 今天的内容是 Job 与 CronJob 离线业务控制器。
409 1
|
消息中间件 Kubernetes API
Kubernetes: Job 和 CronJob 的实现原理
Kubernetes: Job 和 CronJob 的实现原理
1112 0
Kubernetes: Job 和 CronJob 的实现原理
|
监控 容器
阿里云ack集群部署定时任务cronjob
阿里云ack集群部署定时任务cronjob
阿里云ack集群部署定时任务cronjob
|
Kubernetes Linux 调度
十、kubernetes Job和CronJob
kubernetes Job和CronJob
439 0
|
Kubernetes Java Linux
Kubernetes必备知识: CronJob
CronJobs提供了在特定的时间或者间隔内处理业务逻辑的方法。一般创建一个Cronjob有两种方式,第一种是定义Java类,由Hybris生成脚本并加入数据库。第二种是直接编写groovy脚本语言并插入数据库,这种应该适合逻辑比较少的时候,比如只有一两句逻辑的时候,一般用得比较少。
1664 0
Kubernetes必备知识: CronJob
|
Kubernetes 容器 Perl
Kubernetes中使用CronJob定时备份etcd集群数据
kubernetes中部署的应用的信息都存放在etcd里面,这里面的数据非常重要,需要备份,以备不时之需。 这里使用k8s提供的定时任务来执行备份任务,定时任务的pod要和etcd的pod要在同一个node上面(使用nodeAffinity)。
2439 0
|
Kubernetes JavaScript 调度
深入K8S Job(三):cronJob controller源码分析
源码流程图 概述 cronJob controller 的实现比较简单,使用 Cron - Wikipedia 的方法,确定调度规则,底层的调度对象就是依赖了 job,它不会去检查任何 Pod。 该 controller 也没有依赖各种 informer,就简单创建了一个循环运行的协程,每次遍历现有的 jobs & cronJobs,整理它们的关系并进行管理。
2003 0