前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >9.工作负载管理-使用和管理CronJob

9.工作负载管理-使用和管理CronJob

作者头像
AI码师
发布2024-04-17 16:23:37
940
发布2024-04-17 16:23:37
举报

在 Kubernetes 中,CronJob 是一种控制器,基于 Cron 语法创建和管理基于时间表的 Jobs。它设计用于在固定时间运行任务,类似于类 Unix 操作系统中的 cron 实用程序。CronJob 适用于自动化重复任务、批处理处理以及 Kubernetes 集群中的定时作业。

基本概念

Cron 语法:CronJob 中使用的 Cron 语法允许您指定作业的时间表。它由五个字段组成:分钟、小时、月份中的某一天、月份和星期中的某一天。例如,表达式 */15 * * * * 表示"每隔 15 分钟一次"。

Job 模板:CronJob 具有一个 Job 模板,定义了根据时间表应该创建的 Pod。此模板类似于常规的 Pod 规范。

并发策略:CronJob 支持并发策略,用于指定在前一个作业仍在运行时如何处理重叠执行。选项包括 Allow(默认值)、Forbid 和 Replace。

作业历史:CronJob 可以保留指定数量的成功和失败的 Job 实例。这使您可以查看作业执行历史。

基本使用

  • 定义yaml
代码语言:javascript
复制
apiVersion: batch/v1
kind: CronJob
metadata:
  name: cronjob-simple
spec:
  schedule: "* * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: cronjob-simple
            image: busybox:1.28
            imagePullPolicy: IfNotPresent
            command:
            - /bin/sh
            - -c
            - date; echo Hello from the cron job
          restartPolicy: Never
  successfulJobsHistoryLimit: 3
  failedJobsHistoryLimit: 2

schedule :定义cron表达式

代码语言:javascript
复制
# ┌───────────── 分钟 (0 - 59)
# │ ┌───────────── 小时 (0 - 23)
# │ │ ┌───────────── 月的某天 (1 - 31)
# │ │ │ ┌───────────── 月份 (1 - 12)
# │ │ │ │ ┌───────────── 周的某天 (0 - 6)(周日到周六)
# │ │ │ │ │                          或者是 sun,mon,tue,web,thu,fri,sat
# │ │ │ │ │
# │ │ │ │ │
# * * * * *

successfulJobsHistoryLimit:保留成功运行的历史PodfailedJobsHistoryLimit:保留失败运行的历史Pod

  • 观察运行结果

通过时间来看确实每隔一分钟启动一个,也只保留了最近三次成功的job 通过以下命令也能看到pod中打印的内容

代码语言:javascript
复制
kubectl logs cronjob-simple-28491822-4bdn8
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乐哥聊编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本概念
  • 基本使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档