zoukankan      html  css  js  c++  java
  • k8sJob控制器

    Job控制器用于调配pod对象运行一次性任务,容器中的进程在正常运行结束后不会对其进行重启,而是将pod对象置于completed状态。若容器中的进程因错误而终止,则需要依据配置确定重启与否,未运行完成的pod对象因其所在的节点故障而意外终止后会被重新调度。

    实践中,有的作业任务可能需要运行不止一次,用户可以配置它们以串行或并行的方式运行。这种类型的job控制器对象有两种:

    单工作队列的串行式job:即以多个一次性的作业方式串行执行多次作业,直至满足期望的次数

    多工作队列的并行式job:这种方式可以设置工作队列数,即作业数,每个队列仅负责运行一个作业。

    一、创建job对象

    job控制器的spec字段内嵌的必要字段仅为template,它的使用方式与deploy并无不同。job会为其pod对象自动添加“job-name=JOB_NAME”和“controller-uid=UID”标签,并使用标签选择器完成对controller-uid标签的关联。job位于API群组“batch/v1”之内

    apiVersion:batch/v1
    kind: job
    metadata:
      name: job-example
    spec:
      template:
        spec:
          containers:
          - name: myjob
            image: alpine
            command: ["/bin/sh", "-c", "sleep 120"]
          restartPolicy: Never

    Pod模板中的spec.restartPolicy默认为Always,这对job控制器来说并不适用,因此需要设定为Never或OnFailure

    使用kubectl create或kubectl apply命令创建完成后即可查看相关任务状态

    二、并行式job

    将并行度属性spec.parallelism的值设置为1,并设置总任务数spec.completion属性便能够让job控制器以串行方式运行多任务:

    apiVersion: batch/v1
    kind: job
    metadata:
      name: job-multi
    spec:
      completions: 5
    parallelism: 2
    backoffLimit: 5
    activeDeadlineSeconds: 100 template: spec: containers:
    - name: myjob image: alpine command: ["/bin/sh", "-c", "sleep 120"] restartPolicy: OnFailure

    三、job扩容

    job控制器的spec.parallelism定义的并行度表示同时运行的pod对象数,此属性值支持运行时调整从而改变其队列总数,实现扩容和缩容。使用kubectl scale --replicas命令即可

    四、删除job

    job控制器待其pod资源运行完成后,将不再占用系统资源,用户可按需保留或使用资源删除命令将其删除。如果job控制器的容器应用总是无法正常结束运行,而restartPolicy又定义了重启,则它可能会一直处于不停地重启和错误的循环中:

    spec.activeDeadlineSeconds:job的deadline,用于为其指定最大活动时间长度,超出此时长的作业将被终止

    spec.backoffLimit: 将作业标记为失败状态之前的重试次数,默认值为6。

    如上文中示例配置中,其失败重试次数为5次,并且如果超出100s时间仍未运行完成,那么其将被终止。

  • 相关阅读:
    React源码 Suspense 和 ReactLazy
    React源码 ReactContext
    BZOJ 3456: 城市规划 与 多项式求逆算法介绍(多项式求逆, dp)
    LOJ #6436. 「PKUSC2018」神仙的游戏(字符串+NTT)
    LOJ #6433. 「PKUSC2018」最大前缀和(状压dp)
    LOJ #6432. 「PKUSC2018」真实排名(组合数)
    LOJ #2542. 「PKUWC 2018」随机游走(最值反演 + 树上期望dp + FMT)
    LOJ #2541. 「PKUWC 2018」猎人杀(容斥 , 期望dp , NTT优化)
    LOJ #2540. 「PKUWC 2018」随机算法(概率dp)
    LOJ #2538. 「PKUWC 2018」Slay the Spire (期望dp)
  • 原文地址:https://www.cnblogs.com/caibao666/p/11207677.html
Copyright © 2011-2022 走看看