美文网首页
Kubernetes YAML 详解之 Job CronJob

Kubernetes YAML 详解之 Job CronJob

作者: 河码匠 | 来源:发表于2023-05-07 11:21 被阅读0次

    一、Job YAML

    kubectl explain job.spec
    
    字段 值类型 说明
    activeDeadlineSeconds integer Job 存活时间;一旦 Job 运行时间达到 activeDeadlineSeconds 秒,其所有运行中的 Pod 都会被终止, 并且 Job 的状态更新为 type: Failedreason: DeadlineExceeded
    backoffLimit integer 重启几次后为失败。默认: 6
    completionMode string 完成模式

    NonIndexed: 当成功完成的 Pod 个数达到 .spec.completions 所 设值时认为 Job 已经完成。换言之,每个 Job 完成事件都是独立无关且同质的

    Indexed: Job 的 Pod 会获得对应的完成索引。当每个索引都对应一个成功完成的 Pod 时,Job 被认为是已完成的
    completions integer 成功完成任务数量,当达到指定数量时表示 job 完成
    manualSelector boolean 系统生成 selector 匹配符
    parallelism integer 并行性请求(.spec.parallelism)可以设置为任何非负整数。 如果未设置,则默认为 1。 如果设置为 0,则 Job 相当于启动之后便被暂停,直到此值被增加。
    selector Object POD 选择器
    suspend boolean 挂起 job
    template Object 一个 pod 模板
    ttlSecondsAfterFinished integer 清理已完成的 job

    示例:

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: pi
    spec:
      template:
        spec:
          containers:
          - name: pi
            image: perl:5.34.0
            command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
          restartPolicy: Never
      backoffLimit: 4
    

    一、CronJob YAML

    字段 值类型 说明
    concurrencyPolicy string 声明了 CronJob 创建的任务执行时发生重叠如何处理

    Allow:默认。CronJob 允许并发任务执行

    Forbid: CronJob 不允许并发任务执行;如果新任务的执行时间到了而老任务没有执行完,CronJob 会忽略新任务的执行

    Replace: 如果新任务的执行时间到了而老任务没有执行完,CronJob 会用新任务替换当前正在运行的任务
    * jobTemplate Object 一个 pod 模板
    * schedule string 计划任务。语法 * (分钟 0 - 59) * (小时 0 - 23) * (月的某天 1 - 31) * (月份 1 - 12) * (周的某天 0 - 6)
    startingDeadlineSeconds integer 任务延迟开始的最后期限。也就是说任务如果由于某种原因错过了调度时间,开始该任务的截止时间的秒数
    suspend boolean 挂起针对 CronJob 执行的任务
    failedJobsHistoryLimit / successfulJobsHistoryLimit integer 这两个字段指定应保留多少已完成和失败的任务。 默认设置分别为 3 和 1。将限制设置为 0 代表相应类型的任务完成后不会保留

    示例:

    apiVersion: batch/v1
    kind: CronJob
    metadata:
      name: hello
    spec:
      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
    

    相关文章

      网友评论

          本文标题:Kubernetes YAML 详解之 Job CronJob

          本文链接:https://www.haomeiwen.com/subject/xzxkrdtx.html