我有一個 cronjob,每次運行時都會啟動一個新的 pod。在查看 pod 串列時,這會導致一些混亂。有沒有辦法每次都重用同一個 pod?或者為 cronjob 定義一個 statefulset 來使用?謝謝
uj5u.com熱心網友回復:
您可以crond在那里使用和設定一個 crontab。吊艙將不斷運行。但是如果你有一個非常短的計劃——即每分鐘或每幾分鐘,這通常會更好。
uj5u.com熱心網友回復:
一個非常簡單的方法是使用busybox crond,它可以作為部署運行,甚至可以作為主應用程式容器旁邊的邊車容器運行(最適合您的目的)。
這是一個簡單的 pod 定義。圖片必須包含busybox. 它首先為相應用戶創建包含所需的一個或多個條目的 crontab 檔案,然后運行 ??busybox 的crond:
apiVersion: v1
kind: Pod
metadata:
name: busybox-crond-pod
spec:
containers:
# image must contain busybox
- image: busybox:latest
name: cron
command:
- sh
- -c
- |
mkdir -p /var/spool/cron/crontabs
# Example of job definition:
# .------------------ minute (0 - 59)
# | .--------------- hour (0 - 23)
# | | .------------ day of month (1 - 31)
# | | | .--------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .------ day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | | .--- command to be executed
# | | | | | | user under which to run the command ---------------.
# | | | | | | |
echo '* * * * * echo $(date) running my job' > /var/spool/cron/crontabs/root
exec busybox crond -f -l 0 -L /dev/stdout -c /var/spool/cron/crontabs
uj5u.com熱心網友回復:
如果您只想在作業執行后擺脫剩余的 pod,您可以相應地配置您的 cronjob。
您現在可以設定歷史記錄限制,或完全禁用歷史記錄,這樣失敗或成功的 CronJobs 不會被無限期保留。在這里查看我的答案。檔案在這里。
設定歷史限制:
.spec.successfulJobsHistoryLimit 和 .spec.failedJobsHistoryLimit 欄位是可選的。這些欄位指定應保留多少已完成和失敗的作業。默認情況下,它們分別設定為 3 和 1。將限制設定為 0 對應于在完成后不保留相應型別的作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/522439.html
標籤:KubernetesKubernetes-cronjob
