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: helloimage: busyboxargs:- /bin/sh- -c- date;echo Hello from the Kubernetes clusterrestartPolicy: 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
K8s系列之:Cronjob定时任务相关推荐
- k8s系列(四)——资源对象
k8s系列四--资源对象 pod概念 思考:为什么k8s会引出pod这个概念,容器不能解决么? 我的理解:一组密切相关的服务使用容器的话,如果他们的镜像不在一个容器里的话,那么就需要配置反向代理进行通 ...
- 菜鸟学Kubernetes(K8s)系列——(七)关于Kubernetes底层工作原理
菜鸟学Kubernetes(K8s)系列--(七)关于Kubernetes底层工作原理 Kubernetes系列文章 主要内容 菜鸟学Kubernetes(K8s)系列--(一)关于Pod和Names ...
- vSphere 7 With K8s系列09:部署wordpress示例
目录 vSphere 7 With K8s系列09:部署wordpress示例 wordpress部署说明 部署前的准备 创建PVC 部署mysql 部署wordpress 历史文章 vSphere ...
- vSphere 7 With K8s系列06:创建命名空间
vSphere 7 With K8s系列06:创建命名空间 原创 李严省 虚实之路 9月24日 收录于话题 #vSphere with K8s 9个 上一篇文章已经介绍了如何开启vSphere7 wi ...
- vSphere 7 With K8s系列07:客户端工具使用
vSphere 7 With K8s系列07:客户端工具使用 原创 李严省 虚实之路 9月28日 收录于话题 #vSphere with K8s 9个 上一篇文章已经和大家介绍了如何在vSphere7 ...
- K8s系列之:网络原理
K8s系列之:网络原理 一.K8s网络模型 二.Docker的网络模型 三.网络的命名空间 1.网络命名空间的实现 2.网络命名空间的操作 3.网络命名空间的一些技巧 四.Veth设备对 1.Veth ...
- K8s系列之:DNS服务搭建指南
K8s系列之:DNS服务搭建指南 一.skydns配置文件说明 二.修改每台Node上的kubelet启动参数 三.创建skydns RC和Service 四.通过DNS查找Service 五.DNS ...
- K8s系列之:搭建高可用K8s v1.23.5集群详细步骤,3个master节点,3个Node节点
K8s系列之:搭建高可用K8s v1.23.5集群详细步骤,3个master节点,3个Node节点 一.K8s集群节点划分 二.k8s集群环境准备 三.关闭swap 四.关闭ipv6 五.桥接IPv4 ...
- k8s 系列之 CoreDNS 解读
k8s 系列之 CoreDNS CoreDNS工作原理 kuberntes 中的 pod 基于 service 域名解析后,再负载均衡分发到 service 后端的各个 pod 服务中,如果没有 DN ...
最新文章
- 读自动驾驶激光雷达物体检测技术(Lidar Obstacle Detection)(4):Clustering(欧式聚类)
- The restricted headers are:
- PHP分页代码实例教程
- HDFS--Hadoop分布式文件系统
- Asp.Net Core部署:早知道,还是docker!以及一点碎碎念
- 【51单片机快速入门指南】2.2:任意位/任意长度数码管显示数字、小数
- activiti jbpm相关资源
- VS发布 错误 未能将文件 复制到
- 在Solaris下安装中文语言包
- 步进电机驱动技术3:基于ULN2003的步进电机驱动
- “我的一剂良药”之开源指北
- 模拟人生5显示与服务器,模拟人生5之人生无限
- com.android.pngp.tln,杂七杂八的记录
- 40岁想在职读计算机博士,年龄超过四十五岁还有机会报考在职博士吗
- OA系统是什么,为什么要用OA系统呢?
- C++ 泛型编程(五) 模版重载与特例化
- 港珠澳大桥介绍网站设计【期末大作业】源码
- 硬中断、软中断、中断上半部、中断下半部
- 机器学习ml_机器学习简介(ML)
- 【My Electronic Notes系列——低频功率放大器】