zoukankan      html  css  js  c++  java
  • k8s job 控制器

    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

  • 相关阅读:
    常见树的总结
    《深入理解Java虚拟机》读书笔记(第三章)
    《Jave并发编程的艺术》学习笔记(1-2章)
    Java多线程与并发之面试常问题
    Morris遍历-如何用空间复杂度O(1)来遍历二叉树
    BFPRT算法
    Manacher
    maven基础
    play framework + sbt入门之环境搭建
    rancher部署kubernets集群
  • 原文地址:https://www.cnblogs.com/faberbeta/p/14147503.html
Copyright © 2011-2022 走看看