首页 > 其他 > 详细

k8s job 控制器

时间:2020-12-17 09:32:25      阅读:69      评论:0      收藏:0      [点我收藏+]

Job控制器可以执行3种类型的任务
1)一次性任务
2)串式任务 spec.completions
3)并形式任务 spec.parallelism

默认Job执行后,不会自动删除,需要手动删除,例如kubectl delete job examplejobv1
如果想要自动删除,需要修改配置文件
直接修改 /etc/kubernetes/manifests
下面对应的kube-apiserver.yaml kube-controller-manager.yaml kube-scheduler.yaml
加入- --feature-gates=TTLAfterFinished=true
技术分享图片

job的事例
同时创建4个Pod运行,待某一Pod运行结束,继续创建后续的Pod, 知道所有的11个job执行结束,
并且这些job执行结束后,会自动删除,删除的时间是30秒

[root@master01 ~]# cat myjob-busybox.yaml
apiVersion: batch/v1
kind: Job
metadata:
  name: myjob-busybox
spec:
  ttlSecondsAfterFinished: 30
  activeDeadlineSeconds: 60
  completions: 11
  parallelism: 4
  backoffLimit: 6
  template:
    spec:
      restartPolicy: Never
      containers:
      - name: myjob-busybox-container
        image: busybox
        imagePullPolicy: IfNotPresent
        command: [‘sh‘,‘-c‘]
        args: [‘echo "start job";sleep 20;echo "job end"‘]
[root@master01 ~]#

job的restartPolicy只可以是Onfailure和Never中的一个

如果设置为Onfailure,默认重试次数是6, 以上事例可以不写backoffLimit
失败后,会按照10s, 20, 40s 120s 240s 等,递增延迟重试,上限是240s(6分钟)

设置activeDeadlineSeconds可以用时间来限制假死的job,时间一到强制推出job

k8s job 控制器

原文:https://www.cnblogs.com/faberbeta/p/14147503.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!