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日
    浏览(38)
  • 云原生 黑马Kubernetes教程(K8S教程)笔记——第一章 kubernetes介绍——Master集群控制节点、Node工作负载节点、Pod控制单元

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

    2024年02月04日
    浏览(40)
  • 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日
    浏览(26)
  • K8s Pod详解

    每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类: 用户程序所在的容器,数量可多可少 Pause容器,这是每个Pod都会有的一个 根容器 ,它的作用有两个: 可以以它为依据,评估整个Pod的健康状态 可以在根容器上设置Ip地址,其它容器都此Ip(Pod IP),以实现

    2024年02月01日
    浏览(30)
  • k8s pod 绑核

    默认配置下,kubelet/Linux 使用 CFS(完全公平调度)算法来为 Pod 分配 CPU,工作负载(Pod 中的进程)会被调度到不同的可用的 CPU 核心,而且大多数工作负载对这种迁移带来的性能损失并不敏感。 CFS 是 Linux 内核中 SCHED_NORMAL 类任务(普通进程)的默认调度算法,摒弃了原先的

    2024年04月28日
    浏览(52)
  • 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日
    浏览(36)
  • k8s之pod

    Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。 网上的资料对这块的讲解几乎都是纯文字性的,结果可能会导致在入门kubernetes的时候,就忽略了这个非常重要的知识点,先糊涂一阵,等实际操作了后,再回过头来,原来如此啊。本文在讲解特性的同时,配

    2023年04月09日
    浏览(25)
  • 【k8s】pod进阶

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

    2024年02月06日
    浏览(37)
  • k8s---pod进阶

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

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

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

    2024年02月06日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包