• 博客访问: 840761
  • 博文数量: 252
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-05 14:37
  • 认证徽章:
个人简介

走路 行心 修缘(需要交流的请加我的QQ 273936024)

文章分类

全部博文(252)

文章存档

2018年(62)

2017年(63)

2016年(39)

2015年(20)

2014年(29)

2013年(39)

分类: Docker/K8

2018-06-12 16:58:15

一: 简介
CronJob即定时任务,就类似于Linux系统的crontab,在指定的时间周期运行指定的任务。
1.在给定时间点只运行一次
2.
周期性地在给定时间点运行

二:CronJob定义
1
.spec.schedule指定任务运行周期,格式同Cron
2.spec.jobTemplate指定需要运行的任务,格式同Job
3.spec.startingDeadlineSeconds指定任务开始的截止期限
4
.spec.concurrencyPolicy指定任务的并发策略,支持Allow、Forbid和Replace三个选项

三:示例

点击(此处)折叠或打开

  1. apiVersion: batch/v1beta1
  2. kind: CronJob
  3. metadata:
  4.   name: hello
  5. spec:
  6.   schedule: "*/1 * * * *"
  7.   jobTemplate:
  8.     spec:
  9.       template:
  10.         spec:
  11.           containers:
  12.           - name: hello
  13.             image: busybox
  14.             args:
  15.             - /bin/sh
  16.             - -c
  17.             - date; echo Hello from the Kubernetes cluster
  18.           restartPolicy: OnFailure
1. kubectl create -f croJob.yaml
2. kubectl get cronjob hello
3.
kubectl get jobs --watch  监控job执行情况

四:其它
1.Cron Job在每次调度运行时间内大概会创建一个Job对象。我们之所以说大概是因为在特定的环境下可能会创建两个 Job,或者一个 Job 都没创建。我们尝试少发生这种情况,但却不能完全避免。因此,创建 Job 操作应该是 幂等的。
Job 根据它所创建的 Pod 的并行度,负责重试创建 Pod,并就决定这一组 Pod 的成功或失败。Cron Job 根本就不会去检查 Pod。

2.一旦不再需要 Cron Job,简单地可以使用 kubectl 命令删除它:kubectl delete cronjob hello。 这将会终止正在创建的 Job。然而,运行中的 Job 将不会被终止,不会删除 Job 或 它们的 Pod。为了清理那些 Job 和 Pod,需要列出该 Cron Job 创建的全部 Job,然后删除它们。

3.一旦 Job 被删除,由 Job 创建的 Pod 也会被删除。注意,所有由名称为 “hello” 的 Cron Job 创建的 Job 会以前缀字符串 “hello-” 进行命名。如果想要删除当前 Namespace 中的所有 Job,可以通过命令 kubectl delete jobs --all 立刻删除它们。
阅读(263) | 评论(0) | 转发(0) |
0

上一篇: kubernetes实践之五十七:PodPreset

下一篇:没有了

给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册