一: 简介CronJob即定时任务,就类似于Linux系统的crontab,在指定的时间周期运行指定的任务。
1.在给定时间点只运行一次
2.周期性地在给定时间点运行
二:CronJob定义1.spec.schedule指定任务运行周期,格式同Cron
2.spec.jobTemplate指定需要运行的任务,格式同Job
3.spec.startingDeadlineSeconds指定任务开始的截止期限
4.spec.concurrencyPolicy指定任务的并发策略,支持Allow、Forbid和Replace三个选项
三:示例 点击(此处)折叠或打开
创新互联自2013年创立以来,先为东区等服务建站,东区等地企业,进行企业商务咨询服务。为东区企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
-
apiVersion: batch/v1beta1
-
kind: CronJob
-
metadata:
-
name: hello
-
spec:
-
schedule: "*/1 * * * *"
-
jobTemplate:
-
spec:
-
template:
-
spec:
-
containers:
-
- name: hello
-
image: busybox
-
args:
-
- /bin/sh
-
- -c
-
- date; echo Hello from the Kubernetes cluster
-
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 立刻删除它们。
文章标题:kubernetes实践之五十八:CronJob
转载注明:
http://cdxtjz.cn/article/joiooe.html