k8s教程(pod篇)-定时任务

这篇具有很好参考价值的文章主要介绍了k8s教程(pod篇)-定时任务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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:hello
					  image:busybox
					  args:
					  - /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查看任务状态,发现的确每分钟调度了一次:
k8s教程(pod篇)-定时任务
还可以通过查找Cron Job对应的容器,验证每隔1min产生一个容器的事实:

k8s教程(pod篇)-定时任务
查看任意一个容器的日志,结果如下:
k8s教程(pod篇)-定时任务
运行下面的命令,可以更直观地了解Cron Job定期触发任务执行的历史和现状:
k8s教程(pod篇)-定时任务


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

04 文末

本文主要讲解pod的定时任务调度,希望能帮助到大家,谢谢大家的阅读,本文完!文章来源地址https://www.toymoban.com/news/detail-419439.html

到了这里,关于k8s教程(pod篇)-定时任务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从 Linux Crontab 到 K8s CronJob,定时任务正在经历怎样的变革

    作者:黄晓萌(学仁) Job 表示短周期的作业,定时 Job 表示按照预定的时间运行Job,或者按照某一频率周期性的运行 Job。比如: 许多传统企业使用 Linux 自带的 crontab 来做定时任务的方案,该方案非常简单,适合做主机上的运维工作,比如定时清理日志、周期性做健康检查。随

    2024年02月03日
    浏览(50)
  • 云原生 黑马Kubernetes教程(K8S教程)笔记——第一章 kubernetes介绍——Master集群控制节点、Node工作负载节点、Pod控制单元

    参考文章:kubernetes介绍 本章节主要介绍应用程序在服务器上部署方式演变以及kubernetes的概念、组件和工作原理。 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其它技术的参与 缺点:不能为

    2024年02月04日
    浏览(53)
  • k8s、pod

    k8s中的port【端口:30000-32767】 port :为Service 在 cluster IP 上暴露的端口 targetPort:对应容器映射在 pod 端口上 nodePort:可以通过k8s 集群外部使用 node IP + node port 访问Service containerPort:容器内部使用的端口 k8s 集群内部流程: 客户端→clusterIP:port→通过 tagerport→pod IP:container

    2024年02月06日
    浏览(33)
  • 【k8s】pod详解

    Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象,一个pod代表着集群中运行的一个进程。kubernetes中其它大多数组件都是围绕着pod来进行支持和扩展pod功能的。 例如,用于管理pod运行的statefulset和deployment 等控制器对象,用于暴露应用的service和i

    2024年02月06日
    浏览(42)
  • K8S测试pod

    背景 用于测试ping,curl等类型的pod Centos pod

    2024年02月02日
    浏览(44)
  • 【 K8S 】 Pod 进阶

    当定义 Pod 时可以选择性地为每个容器设定所需要的资源数量。 最常见的可设定资源是 CPU 和内存大小,以及其他类型的资源。 当为 Pod 中的容器指定了 request 资源时,代表容器运行所需的最小资源量,调度器就使用该信息来决定将 Pod 调度到哪个节点上。当还为容器指定了

    2024年02月13日
    浏览(31)
  • k8s --pod详解

    目录 一、Pod基础概念 1、pod简介 2、在Kubrenetes集群中Pod有如下两种使用方式 3、pause容器使得Pod中的所有容器可以共享两种资源:网络和存储。 (1)网络 (2)存储 4、kubernetes中的pause容器主要为每个容器提供以下功能 6、Pod分类 (1)自主式Pod   (2)控制器管理的Pod  (3)

    2024年02月13日
    浏览(30)
  • k8s---pod进阶

    //资源限制 当定义 Pod 时可以选择性地为每个容器设定所需要的资源数量。 最常见的可设定资源是 CPU 和内存大小,以及其他类型的资源。 当为 Pod 中的容器指定了 request 资源时,调度器就使用该信息来决定将 Pod 调度到哪个节点上。当还为容器指定了 limit 资源时,kubelet 就会

    2024年02月06日
    浏览(39)
  • k8s 终止pod

    cat  test.yaml apiVersion: v1        #必选,版本号,例如v1 kind: Pod       #必选,Pod metadata:       #必选,元数据   name: string        #必选,Pod名称   namespace: string     #必选,Pod所属的命名空间   labels:       #自定义标签     - name: string      #自定义标签名字   annotations:  

    2024年02月13日
    浏览(39)
  • k8s关于pod

      目录 1、POD 的创建流程 kubectl 发起创建 Pod 请求: API Server 接收请求并处理: 写入 Etcd 数据库: Kubelet 监听并创建 Pod: Pod 状态更新和汇报: 2、POD 的状态解析 1. Pending Pod 2. Running Pod 3. Succeeded Pod 4. Failed Pod 5. Unknown 6. CrashLoopBackOff 7. ImagePullBackOff Pod 8. Terminating 9. Evicted 10.

    2024年03月18日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包