Kubernetes 之 Cronjob

2020-01-03  本文已影响0人  YP小站

Cronjob 简介

Cronjob 是一个计划任务,与 Linux 系统 Crontab 一样,格式也是基本一样。

格式如下

# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of the month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday;
# │ │ │ │ │                                   7 is also Sunday on some systems)
# │ │ │ │ │
# │ │ │ │ │
# * * * * * command to execute

具体见 https://en.wikipedia.org/wiki/Cron#Overview

Cronjob 结构草图

Cronjob 运行

CronJob 使用 Job 对象来完成任务。CronJob 每次运行时都会创建一个 Job 对象,Job 会创建一个 Pods 来执行任务,任务执行完成后停止容器。

Cronjob 用途

CronJob 在特定时间 或 按特定间隔运行任务。CronJob 非常适合用于自动执行任务,例如备份、报告、发送电子邮件或清理任务。

Cronjob 例子

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: demo # Cronjob的名称
  labels:
    app: demo
    cron: hello
spec:
  concurrencyPolicy: Forbid
  failedJobsHistoryLimit: 1
  jobTemplate:
    spec:
      template:
        metadata:
          labels:
            app: demo
            cron: hello
        spec:
          containers:
          - image: harbor.example.com/hello:v1
            imagePullPolicy: IfNotPresent
            name: hello
            command: [/bin/bash]
            args:
            - -c
            - echo "Hello World!!!" # job 具体执行的任务
            resources:
              limits:
                cpu: 300m
                memory: 300Mi
              requests:
                cpu: 100m
                memory: 100Mi
          nodeSelector:
            label: test
          imagePullSecrets:
            - name: harbor-certification
          restartPolicy: Never
  schedule: "15 * * * *"  # job执行的周期,cron格式的字符串
  successfulJobsHistoryLimit: 1

Cronjob 重要参数解释

参考链接

https://kubernetes.io/zh/docs/concepts/workloads/controllers/cron-jobs/
本文由 YP小站 发布!

上一篇 下一篇

猜你喜欢

热点阅读