job和cronjob

#job一次性计划任务相当于linux的at
[root@master greenwich]# cat job.yaml 
apiVersion: batch/v1
kind: Job
metadata:
  name: job-demo
  namespace: greenwich
spec:
  template:
    spec:
      restartPolicy: Never
      containers:
      - name: counter
        image: busybox
        command:
        - /bin/sh
        -  -c 
        - for i in 9 8 7 6 5 4 3 2 1 0 ; do echo $i; done
[root@master greenwich]# kubectl apply -f job.yaml 
job.batch/job-demo created
root@master greenwich]# kubectl get job,pod -n greenwich
NAME                 COMPLETIONS   DURATION   AGE
job.batch/job-demo   1/1           9s         29s

NAME                 READY   STATUS      RESTARTS   AGE
pod/job-demo-ghz8r   0/1     Completed   0          21s
[root@master greenwich]# kubectl logs pod/job-demo-ghz8r -n greenwich
9
8
7
6
5
4
3
2
1
0
 - job的重启策略:Never和OnFailure
 - job.spec.backoffLimit:pod创建失败后重试次数,呈指数增加
 - job.spec.activeDeadlineSeconds:来限制任务运行的最长时间
 - spec.parallelism:定义并行pod数量
 - spec.completions:定义完成pod的数目
#cronjob周期性计划任务相当于linux的crontab
[root@master greenwich]# cat cronjob.yaml 
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: cronjob-demo
  namespace: greenwich
spec:
  schedule: "*/2 * * * *" 
  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: OnFailure
          containers:
          - name: hello
            image: busybox
            args:
            - /bin/sh
            - -c
            - for i in 9 8 7 6 5 4 3 2 1 0 ; do echo $i ; done 
[root@master greenwich]# kubectl get cronjob,pod -n greenwich 
NAME                         SCHEDULE      SUSPEND   ACTIVE   LAST SCHEDULE   AGE
cronjob.batch/cronjob-demo   */2 * * * *   False     1        26s             28s
NAME                                READY   STATUS      RESTARTS   AGE
pod/cronjob-demo-1615429200-9krqj   0/1     Completed   0          19s[root@master greenwich]# kubectl logs pod/cronjob-demo-1615429200-9krqj -n greenwich 
9
8
7
6
5
4
3
2
1
0
[root@master greenwich]# kubectl get cronjob,pod -n greenwich 
NAME                         SCHEDULE      SUSPEND   ACTIVE   LAST SCHEDULE   AGE
cronjob.batch/cronjob-demo   */2 * * * *   False     1        13s             2m15s
NAME                                READY   STATUS              RESTARTS   AGE
pod/cronjob-demo-1615429200-9krqj   0/1     Completed           0          2m6s
pod/cronjob-demo-1615429320-ddltz   0/1     ContainerCreating   0          5s
[root@master greenwich]# kubectl get pods -n greenwich
NAME                            READY   STATUS      RESTARTS   AGE
cronjob-demo-1615429560-klg8k   0/1     Completed   0          5m21s
cronjob-demo-1615429680-k49gg   0/1     Completed   0          3m21s
cronjob-demo-1615429800-xsc9l   0/1     Completed   0          80s
 - 周期-2分钟都会产生一个pod实例
 - spec.schedule字段是必须填写的,用来指定任务运行的周期,格式和crontab一样
 - spec.jobTemplate用来指定需要运行的任务
 - spec.successfulJobsHistoryLimit和spec.failedJobsHistoryLimit,表示历史限制是可选的字段,设置限制的值为0,那么相关类型的Job完成后将不会被保留

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值