Pages - Menu

2022年8月16日 星期二

[GKE]Cronjob筆記

前言

之前同事是直接自己土炮用golang寫timer,
不過如果碰到執行時間過長,重複執行的話,
就要判斷一堆狀態,決定要不要做,
那就改用k8s的cronJob了吧。


正文

文件看一看(1) (2),好像就差不多了。
下面是測試,每兩分鐘執行一次,
但如果執行時間過長,是不是會在執行。
這邊關掉的是併發以及 暫停後續執行,
另外注意,gcp的cronjob是每10秒檢查一次狀態。

apiVersion: batch/v1beta1     # k8s after version 1.21 ,apiVersion: batch/v1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/2 * * * *"             # min hour day Mon week
  concurrencyPolicy: Forbid           # 並發政策 
  startingDeadlineSeconds: 60        # 截止時限
  suspend: true                       # 暫停後續執行
  successfulJobsHistoryLimit: 3       # 歷史限制: 保存成功的數量
  failedJobsHistoryLimit: 1           # 歷史限制: 保存失敗的數量
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            args:
            - /bin/sh
            - -c
            - echo "start"; date; echo "Hello, World! Sleep 150s"; sleep 150s; date;
          restartPolicy: OnFailure

ref.
1. GCP-CronJob
2. k8s-CronJob

沒有留言:

張貼留言