栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

K8s系列之:Cronjob定时任务

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

K8s系列之:Cronjob定时任务

K8s系列之:Cronjob定时任务

K8s新类型的Job,类似Linux Cron的定时任务Cron Job。

在API Server的启动进程上增加以下配置参数并重启:

--runtime-config=batch/v2alpha1=true

Cron Job的定时表达式,基本上照搬了Linux Cron的表达式,区别是第1位是分钟而不是秒,格式如下:

Minutes Hours DayofMonth Month DayofWeek Year

每一个域可出现的字符如下:

Minutes:可出现",-*/"这4个字符,有效范围为0-59的整数Hours:可出现",-*/"这4个字符,有效范围0-23的整数DayofMonth:可出现",-*/?LWC"这8个字符,有效范围为0-31的整数Month:可出现",-*/"这4个字符,有效范围为1-12的整数或JAN-DEC。DayofWeek:可出现",-*/?LC#"这8个字符,有效范围为1-7的整数或SUN-SAT两个范围。1表示星期天,2表示星期一,以此类推。

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

*:表示匹配该域的任意值,假如在Minutes域使用*则表示每分钟都会触发事件。/:表示起始时间开始触发,然后每隔固定时间触发一次,例如在Minutes域设置为5/20,则意味着第1次出发在第5min时接下来每20min触发一次,将在第25min、第45min等时刻分别触发。比如每隔1min执行一次任务,则Cron表达式如下:*/1 * * * *

编写一个Cron Job的配置文件
cron.yaml

apiVersion: batch/v2alpha1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      containers:
      - name: hello
        image: busybox
        args:
        - /bin/sh
        - -c
        - date;echo Hello from the Kubernetes cluster
      restartPolicy: onFailure

定义了一个名为hello的Cron Job,任务每隔1min执行一次,运行的镜像是busybox,执行的命令是shell脚本,脚本执行时会在控制台输出当前时间和字符串"hello from the kubernetes cluster"

执行kubectl create命令完成创建:

kubectl create -f cron.yaml
cronjob "hello" created

每隔1min执行kubectl get cronjob hello查看任务状态,发现的确是每分钟调度了一次

kubectl get cronjob hello
NAME   SCHEDULE    SUSPEND    ACTIVE   LAST_SCHEDULE
hello  */1 * * * *  False      0 

还可以通过查找Cron Job对应的容器,验证每隔1min产生一个容器的事实,如下所示:

docker ps -a | grep busybox

查看任意一个容器的日志,结果如下

docker logs 83f7b86728ea

运行下面的命令,可以更加直观地了解Cron Job定期触发任务执行的历史和现状:

kubectl get jobs --watch
NAME       DESIRED       SUCCESSFUL      AGE
hello-14852  1              1             31m
hello-25930  1              1             30m

查看具体的Pod可以通过下面方式:

kubectl get pods --show-all | grep hello-14852

当不需要某个Cron Job时,可以通过下面的命令删除

kubectl delete cronjob hello
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/728406.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号