文章目录

  • 01 引言
  • 02 基本语法
  • 03 案例
  • 04 文末

01 引言

声明:本文为《Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)》的读书笔记

Kubernetes从1.5版本开始增加了一种新类型的Job,即类似Linux Cron的定时任务Cron Job,下面看看如何定义和使用这种类型的Job

02 基本语法

首先,确保Kubernetes的版本为1.8及以上。

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

Minutes 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~SAT1表示星期天,2表示星期一,以此类推

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

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

03 案例

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

 */1 * * * *

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

apiversion: batch/vl beta
kind: CronJob
metadata:name: hello
spec:schedule: "*/1 * * * *"jobTemplate:spec:template:spec:containers:- name:helloimage:busyboxargs:- /bin/sh- -C- date;echo Hello from the Kubernetes cluster restartPolicy:OnFailure

该例子定义了一个名为helloCron Job,任务每隔1min执行一次,运行的镜像是busybox,运行的命令是Shell脚本,脚本运行时会在控制台输出当前时间和字符串"Hello from the Kubernetes cluster".

接下来运行kubectl create命令完成创建:

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

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

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


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

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


Kubernetes1.9版本后,kubectl命令增加了别名cj来表示cronjob,同时 kubectl set image/env命令也可以作用在CronJob对象上。

04 文末

本文主要讲解pod的定时任务调度,希望能帮助到大家,谢谢大家的阅读,本文完!

k8s教程(pod篇)-定时任务相关推荐

  1. k8s教程(pod篇)-定向调度

    文章目录 01 引言 02 举例 Step1:给Node打上标签 Step2:Pod指定NodeSelector Step3:验证 03 预定义的标签 04 文末 01 引言 声明:本文为<Ku ...

  2. k8s教程(Volume篇)-PVC详解

    文章目录 01 引言 02 PVC详解 2.1 参数配置 2.1.1 资源请求(Resources) 2.1.2 访问模式 (Access Modes) 2.1.3 存储卷模式(Volume Mode ...

  3. k8s教程(Volume篇)-PV详解

    文章目录 01 引言 02 PV详解 2.1 示例配置详解 2.1.1 存储容量 (Capacity) 2.1.2 存储卷模式 (Volume Modes) 2.1.3 访问模式 (Access Mo ...

  4. k8s查看pod的yaml文件_每天5分钟|轻松掌握开发工作中必会的k8s-yaml配置说明和常用命令...

    在 K8S 中,创建资源有两种方式: 方式一:使用kubectl 命令行,在输入kubectl命令的时候,填上对应的参数 优点:方便快捷,一行命令搞定 缺点:一行命令太多参数,可读性差,不利于维护 方 ...

  5. 【云原生 | Kubernetes 实战】18、K8s 安全实战篇之 RBAC 认证授权(上)

    目录 一.k8s 安全管理:认证.授权.准入控制概述 1.1 认证 认证基本介绍 授权基本介绍 准入控制基本介绍 为什么需要准入控制器呢? k8s 客户端访问 apiserver 的几种认证方式 ku ...

  6. K8S实战基础篇:一文带你深入了解K8S实战部署SpringBoot项目

    K8S实战基础篇:一文带你深入了解K8S实战部署SpringBoot项目 1.前言 2.简介 2.1.为什么写这篇文章 2.2.需求描述 2.3.需求分析 3. 部署实战 3.1 环境准备 3.2 i ...

  7. 万字长文:K8s 创建 pod 时,背后到底发生了什么?

    本文基于 2019 年的一篇文章What happens when ... Kubernetes edition![1]梳理了 K8s 创建 pod(及其 deployment/replicaset) ...

  8. 【云原生 | Kubernetes 实战】18、K8s 安全实战篇之 RBAC 认证授权(下)

    目录 一.常见角色(role)授权的案例 1.1 允许读取核心 API 组的 Pod 资源 1.2 允许读写 apps API 组中的 deployment 资源 1.3 允许读取 Pod 以及读写 ...

  9. 【B站、西瓜抖音视频课件】Docker K8S教程

    title: Docker&K8S教程 date: 2023-03-13 18:33:19 tags: [K8S,Docker] categories: [K8S] 网络策略 1.3开始提供 ...

  10. k8s中pod的重启策略和健康检查

    目录 k8s中pod的重启策略 pod中一共有以下三个重启策略(restartPolicy) 健康检查: 健康检查类型 支持的检查方法: 检查示例 其他检查方式示例 k8s中pod的重启策略 pod中 ...

最新文章

  1. 冠军杜兰特和Deta比赛
  2. 低通滤波器转带通滤波器公式由来_?OPA627AP 高通滤波器
  3. .Net Core上用于代替System.Drawing的类库
  4. 模板:割点、桥与双连通
  5. Elasticsearch环境搭建和介绍(Windows)
  6. LINUX下载编译FreeType
  7. Restlet 学习笔记
  8. matlab计算abc三相短路电流_不用到处问别人了,关于变压器的相关计算公式,都在这里!收藏好...
  9. oracle adjusting parallel,ora-29740故障求救
  10. arcgis engine已知图幅号获取比例尺
  11. 动手打造N合1操作系统安装光盘
  12. JavaScript计算圆周率(解析几何+定积分)
  13. [计算机组成原理]-32/64位、寻址能力
  14. 1688电商API接口-无需多个 电商平台单独对接
  15. Android 渐变色背景样式
  16. vs2015安装Qt插件问题
  17. 淘宝直播基地是什么?
  18. 微软雅黑html中怎么写,网页中使用微软雅黑字体(css调用微软雅黑)
  19. 开发者藏经阁——超全阿里系电子书大合集(打包下载)
  20. 常用的思维导图软件(转载)

热门文章

  1. 计算智能——BP神经网络
  2. 区块链的数据结构和数据存储
  3. oracle case when多列,Oracle CASE WHEN 用法介绍
  4. Android xUtils3
  5. 逻辑回归原理及matlab实现
  6. scanf 返回值的总结
  7. 云服务器实战篇 - Google免费云申请、登录、使用
  8. 软件测试的生命周期、Bug
  9. rs232接口_RS232协议和RS485协议的区别与应用,看这一篇就够了!
  10. 博纳影业年营收20亿:净亏1.94亿 财务总监刘钦辉去世