前言
本文為「Kubernetes 實作手冊:基礎入門篇」課程的學習筆記。
簡介
CronJob 資源是一個或多個基於時間間隔重複調度的 Job 資源。一個 CronJob 資源就像 crontab
文件中的一行。它用 Cron 格式進行編寫,並周期性地在給定的調度時間執行 Job。
實作
以下使用 kind 的環境。
1 2 3
| cd vagrant/kind vagrant up vagrant ssh
|
首先,查看範例資料夾中的 CronJob 配置檔。
1
| cat introduction/cronjob/basic.yaml
|
以下是一個描述 CronJob 的 YAML 範例檔。和 Job 類似。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| apiVersion: batch/v1beta1 kind: CronJob metadata: name: pi spec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name: pi image: perl command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"] restartPolicy: Never completions: 5 backoffLimit: 4
|
使用配置檔創建 CronJob 資源。
1
| kubectl apply -f introduction/cronjob/basic.yaml
|
隔一段時間,查看此 CronJob 與其他資源的關係。
1 2 3 4 5 6 7 8 9
| kubectl tree cronjob pi NAMESPACE NAME READY REASON AGE default CronJob/pi - 3m37s default ├─Job/pi-1640244540 - 2m51s default │ ├─Pod/pi-1640244540-8rpts False PodCompleted 2m51s default │ ├─Pod/pi-1640244540-97x9g False PodCompleted 2m42s default │ ├─Pod/pi-1640244540-td5hb False PodCompleted 2m18s default │ ├─Pod/pi-1640244540-wb6d4 False PodCompleted 2m26s default │ └─Pod/pi-1640244540-x5zs8 False PodCompleted 2m34s
|
列出所有的 CronJob 資源。
1 2 3
| kubectl get cronjobs NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE pi */1 * * * * False 1 23s 4m2s
|
刪除 CronJob 資源。
1
| kubectl delete -f introduction/cronjob/basic.yaml
|
參考資料