k8s的CronJob


一、CronJob介紹

	可以利用 CronJobs 執行基於時間調度的任務。這些自動化任務和 Linux 或者 Unix 系統的 Cron 任務類似
	CronJobs在創建周期性以及重復性的任務時很有幫助,例如執行備份操作或者發送郵件。CronJobs 也可以在特定時間調度單個任務,例如你想調度低活躍周期的任務。

二、創建一個Job

2.1、yaml文件創建

[root@k8s-master01 app]# cat  cronjob.yaml 
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox:1.28
            imagePullPolicy: IfNotPresent
            args:
            - /bin/sh
            - -c
            - date; echo Hello from the Kubernetes cluster
          restartPolicy: OnFailure

# 創建job
kubectl create -f cronjob.yaml 

2.2、查看job

[root@k8s-master01 app]# kubectl get jobs --watch
NAME               COMPLETIONS   DURATION   AGE
hello-1609167960   0/1           7m44s      7m44s
hello-1609168020   0/1           6m42s      6m42s
hello-1609168080   0/1           5m41s      5m41s
hello-1609168140   0/1           4m50s      4m50s
hello-1609168200   0/1           3m49s      3m49s
hello-1609168260   1/1           21s        2m48s
hello-1609168320   1/1           2s         107s
hello-1609168380   1/1           3s         46s

[root@k8s-master01 app]# kubectl get cronjob hello
NAME    SCHEDULE      SUSPEND   ACTIVE   LAST SCHEDULE   AGE
hello   */1 * * * *   False     6        4s              8m20s

# 刪除
[root@k8s-master01 app]# kubectl delete cronjob hello
cronjob.batch "hello" deleted

2.3、yaml文件參數介紹

kubectl get cj hello -oyaml
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  labels:
    run: hello
  name: hello
  namespace: default
spec:
  concurrencyPolicy: Allow #並發調度策略:Allow運行同時運行過個任務。
								# Forbid:不運行並發執行。
								# Replace:替換之前的任務
  failedJobsHistoryLimit: 1 # 保留失敗的任務數。
  jobTemplate:
    metadata:
      creationTimestamp: null
    spec:
      template:
        metadata:
          creationTimestamp: null
          labels:
            run: hello
        spec:
          containers:
          - args:
            - /bin/sh
            - -c
            - date
            image: nginx
            imagePullPolicy: IfNotPresent
            name: hello
            resources: {}
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
          dnsPolicy: ClusterFirst
          restartPolicy: OnFailure
          schedulerName: default-scheduler
          securityContext: {}
          terminationGracePeriodSeconds: 30
  schedule: '*/1 * * * *'  #調度的策略 分時日月周
  successfulJobsHistoryLimit: 3 # 成功的Job保留的次數
  suspend: false # 掛起,true:cronjob不會被執行。
status: {}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM