Kubernetes组件Job与Corejob

Job

Job启动后,只运行一个Pod,Pod运行结束后整个Job也就立刻结束;

Example:

   输出圆周率小数点后2000位,运行时间大概为10s

apiVersion: batch/v1
kind: Job
metadata:
  name: pi
spec:
  template:
    spec:
      containers:
      - name: pi
        image: perl
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never
  backoffLimit: 4

CronJob

周期性完成Job,定点时间调度Job运行

策略:

  1. Allow(默认):允许并发运行Job;
  2. Forbid:禁止并发运行,如果前一个Job没有完成则直接跳过执行下一个;
  3. Replace:取消当前正在运行的Job,用一个新的来替换。

Example:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: test
spec:
  concurrencyPolicy: Replace            #并发策略
  failedJobsHistoryLimit: 1             #失败任务历史显示个数
  successfulJobHistoryLimit: 1          #成功Job历史显示个数
  schedule: "*/1 * * * *"               #表达式 每分钟执行一次
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: test
            image: docker.hobot.cc/library/centos:7.4
            args:
            - /bin/sh
            - -c
            - echo Hello World
          restartPolicy: OnFailure

Example:

apiVersion: batch/v1beta1 #版本
kind: CronJob
metadata:
  name: xxxxxx  #名称
  namespace: xxxx #项目分组
spec:
  concurrencyPolicy: Replace   #重点  并发策略
  failedJobsHistoryLimit: 1     #重点   失败任务历史显示个数
  jobTemplate:
    metadata: {}
    spec:
      activeDeadlineSeconds: 600
      backoffLimit: 6
      completions: 1
      parallelism: 1
      template:
        metadata: {}
        spec:
          containers:
          - command:
            - curl
            - '-i'
            - >-
              www.baidu.com
            env:
            - name: MYPATH
              value: /usr/local
            image: >-
              registry-vpc.cn-shanghai.aliyuncs.com/jinlincentos/mycentos:1.4.1
            imagePullPolicy: IfNotPresent
            name: xxxxx  #应用名称
            ports:
            - containerPort: 80
              protocol: TCP
            resources:
              requests:
                cpu: 250m
                memory: 512Mi
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
          dnsPolicy: ClusterFirst
          restartPolicy: Never    #重启策略
          schedulerName: default-scheduler
          securityContext: {}
          terminationGracePeriodSeconds: 30
  schedule: '*/1 * * * *'     #表达式 每分钟执行一次
  startingDeadlineSeconds: 60   #重点 job存活时间 默认不设置为永久
  successfulJobsHistoryLimit: 1  #重点 成功job历史显示个数
  suspend: true               #true 挂起 不运行  false 及运行
发布了62 篇原创文章 · 获赞 16 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41674452/article/details/103814711