kubernetes实践之五十八:CronJob

发布时间:2020-08-19 01:16:06 作者:百联达
来源:ITPUB博客 阅读:211
一: 简介
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 立刻删除它们。
推荐阅读:
  1. Kubernetes网络组件之Calico策略实践(BGP、
  2. Kubernetes中的Job和CronJob资源对象怎么用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

cronjob kubernetes 五十八

上一篇:SP2-0618: Cannot find the Session Identifier.Check PLUSTRACE role is enabled

下一篇:Servlet:我还活着呢!

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》