k8s概念-Job和CronJob

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

回到目录 

Job

  • 对于非耐久性任务,比如压缩文件,任务完成后,pod需要结束运行,不需要pod继续保持在系统中,这个时候就要用到Job。

  • Job负责批量处理短暂的一次性任务 (short lived one-off tasks),即仅执行一次的任务,它保证批处理任务的一个或多个Pod成功结束

yaml文件

多次执行任务

一个执行10次,并发为1的job任务,在容器中输出hello

apiVersion: batch/v1  #版本
kind: Job  #类型
metadata:
  name: busybox-job  #名称
spec:
  completions: 10                                               # 执行job的次数
  parallelism: 1                                                # 执行job的并发数
  template:
    metadata:
      name: busybox-job-pod #pod名
    spec:
      containers:
      - name: busybox
        image: busybox
        imagePullPolicy: IfNotPresent
        command: ["echo", "hello"]
      restartPolicy: Never  #重启策略
一次性任务

不指定completions即默认为1,是一次性任务

改任务将执行sh命令,将mysql的host,数据库名和密码写入容器卷中

apiVersion: batch/v1  #版本
kind: Job  #类型
metadata:
  name: mysql-dump
spec:
  template:
    metadata:
      name: mysql-dump
    spec:
      nodeName: k8s-master2  #部署到指定节点
      containers:
      - name: mysql-dump
        image: mysql:5.7
        command: ["/bin/sh","-c","mysqldump --host=mysql-test -uroot -pabc123 --databases mysql > /root/mysql2022.sql"]
        volumeMounts:
        - mountPath: "/root"
          name: mysql-data
      restartPolicy: Never
      volumes:
      - name: mysql-data
        hostPath:
          path: /opt/mysqldump

CronJob

在 k8s 中周期性运行计划任务,与 linux 中的 crontab 相同

注意点:CronJob 执行的时间是 controller-manager 的时间,所以一定要确保 controller-manager 时间是准确的

cron表达式

格式
 ┌───────────── 分钟 (0 - 59)
 │ ┌───────────── 小时 (0 - 23)
 │ │ ┌───────────── 月的某天 (1 - 31)
 │ │ │ ┌───────────── 月份 (1 - 12)
 │ │ │ │ ┌───────────── 周的某天 (0 - 6)(周日到周一;在某些系统上,7 也是星期日)
 │ │ │ │ │                          或者是 sun,mon,tue,web,thu,fri,sat
 │ │ │ │ │
 │ │ │ │ │
 * * * * *

*代表全部

?代表不使用该位置

/后紧跟代表每隔多久

-代表前后期间

# 代表第几个文章来源地址https://www.toymoban.com/news/detail-622571.html

常见cron
0 0 0 * * ?:每天的零点整执行任务。

0 0 */2 * * ?:每隔2小时执行一次任务。

0 0 12 * * ?:每天中午12点执行任务。

0 15 10 * * ?:每天上午10点15分执行任务。

0 0 6,18 * * ?:每天的早上6点和晚上6点执行任务。

0 0/30 8-18 * * ?:每天的上午8点到下午6点之间,每隔30分钟执行一次任务。

0 0 0 1 1 ?:每年的1月1日零点整执行任务。

0 0 0 * * 2:每周的星期二零点整执行任务。

0 0 0 ? * 6#3:每月的第三个星期六零点整执行任务。

0 0 0 L * ?:每个月的最后一天零点整执行任务。

ymal文件

apiVersion: batch/v1
kind: CronJob
metadata:
  name: hello
spec:
  concurrencyPolicy: Allow # 并发调度策略:Allow 允许并发调度,Forbid:不允许并发执行,Replace:如果之前的任务还没执行完,就直接执行新的,放弃上一个任务
  failedJobsHistoryLimit: 1 # 保留多少个失败的任务
  successfulJobHistoryLimit: 3 # 保留多少个成功的任务
  suspend: false # 是否挂起任务,若为 true 则该任务不会执行
#  startingDeadlineSeconds: 30 # 间隔多长时间检测失败的任务并重新执行,时间不能小于 10
  schedule: "* * * * *" # 调度策略
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox:1.28
            imagePullPolicy: IfNotPresent
            command:
            - /bin/sh
            - -c
            - date; echo Hello from the Kubernetes cluster
          restartPolicy: OnFailure

到了这里,关于k8s概念-Job和CronJob的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Kubernetes(k8s)定时任务:CronJob

    目录 一.系统环境 二.前言 三.Kubernetes CronJob简介 四.kubernetes CronJob和Linux crontab对比 五.CronJob表达式语法 六.创建CronJob定时任务 七.创建具有超时时间的CronJob定时任务 八.总结 本文主要基于Kubernetes1.21.9和Linux操作系统CentOS7.4。 服务器版本 docker软件版本 Kubernetes(k8s)集群版本 CP

    2024年02月07日
    浏览(55)
  • k8s+springboot+CronJob 定时任务部署

    kubernetes+springboot+CronJob 定时任务配置如下代码: cronjob.yaml k8s 文件   Dockerfile 文件 test.sh 文件 4个代码实现类: kubectl 客户端执行,sh test.sh :

    2024年02月15日
    浏览(49)
  • 18-k8s控制器资源-cronjob控制器

            job控制器是执行完一次任务,就结束;         cronjob控制器,是基于job控制器,定期频率性执行任务;等同于linux系统中的crontab一样; [root@k8s231 pi]# vim cronjob.yaml apiVersion: batch/v1 kind: CronJob metadata:   name: xinjizhiwa spec:   schedule: \\\"* * * * *\\\"   #定义job的模板   jobTemplate

    2024年02月22日
    浏览(66)
  • 从 Linux Crontab 到 K8s CronJob,定时任务正在经历怎样的变革

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

    2024年02月03日
    浏览(50)
  • 【K8S系列】深入解析Job

    你只管努力,其他交给时间,时间会证明一切。 文章标记颜色说明: 黄色 :重要标题 红色 :用来标记结论 绿色 :用来标记一级论点 蓝色 :用来标记二级论点 Kubernetes (k8s) 是一个容器编排平台,允许在容器中运行应用程序和服务。今天学习一下Job-作业管理 希望这篇文章

    2023年04月15日
    浏览(43)
  • K8s-应用管理(环境变量,Job)

    构建一个测试镜像 运行这个容器发现睡眠了5秒以后退出,如果我们希望自己指定可以直接在docker后面加命令覆盖,写法如下 上面的过程显得有些不合理,我们希望只传入参数,所以ENTRYPOINT出现了 pod文件使用command字段覆盖了入口点ENTRYPOINT指令,args字段覆盖了docker文件中的

    2024年01月25日
    浏览(32)
  • k8s控制器之job--第五弹Job的自动清理

    系统中已经完成的 Job 通常是不在需要里的,长期在系统中保留这些对象,将给 apiserver 带来很大的压力。如果通过更高级别的控制器(例如 CronJobs)来管理 Job,则 CronJob 可以根据其中定义的基于容量的清理策略(capacity-based cleanup policy)自动清理Job。 除了 CronJob 之外,TTL 机

    2024年02月11日
    浏览(42)
  • Kubernetes(k8s)一次性任务:Job

    目录 一.系统环境 二.前言 三.Kubernetes Job简介 四.创建一次性任务job 4.1 创建一个简单任务的job 4.2 创建需要执行多次的job任务 五.测试job失败重试次数 六.job任务使用示例:计算圆周率 七.总结 本文主要基于Kubernetes1.21.9和Linux操作系统CentOS7.4。 服务器版本 docker软件版本 Kubern

    2024年02月07日
    浏览(37)
  • 17-k8s控制器资源-job控制

    job控制器:就是一次性任务的pod控制器,pod完成作业后不会重启,其重启策略是:Never         启动一个pod,执行完成一个事件,然后pod关闭;         事件:计算π的值,取前5000位; [root@k8s231 pi]# vim job.yaml apiVersion: batch/v1 kind: Job metadata:   name: job-pi spec:   #定义pod模板  

    2024年02月20日
    浏览(49)
  • k8s控制器之job--第四弹Job的终止和清理

    当 Job 完成后: 将不会创建新的 Pod 已经创建的 Pod 也不会被清理掉。此时,您仍然可以继续查看已结束 Pod 的日志,以检查 errors/warnings 或者其他诊断用的日志输出 Job 对象也仍然保留着,以便您可以查看该 Job 的状态 由用户决定是否删除已完成的 Job 及其 Pod 可通过 kubectl 命

    2024年02月10日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包