pod排程之CrontJob 定時任務

2021-10-08 06:20:26 字數 2356 閱讀 9404

cron job 管理基於時間的 job,即:

乙個 cronjob 物件類似於 crontab (cron table)檔案中的一行。它根據指定的預定計畫周期性地執行乙個 job。

我們需要掌握cron job的定時表示式,它基本上照搬了linux cron的表示式,區別是第1位是分鐘而不是秒,格式如下:

minutes hours dayofmonth moth dayofweek year
其中每個域都可出現的字元如下:

minutes:可出現「,」「-」「*」「/」這4個字元,有效範圍為0~59的整數。

hours:可出現「,」「-」「*」「/」這4個字元,有效範圍為0~23的整數。

dayofmonth:可出現「,」「-」「*」「/」「?」「l」「w」「c」這8個字元,有效範圍為0~31的整數。

month:可出現「,」「-」「*」「/」這4個字元,有效範圍為1~12的整數或jan~dec。

dayofweek:可出現「,」「-」「*」「/」「?」「l」「c」「#」這8個字元,有效範圍為1~7的整數或sun~sat。1表示星期天,2表示星期一,以此類推。

表示式中的特殊字元「*」與「/」的含義如下。

*:表示匹配該域的任意值,假如在minutes域使用「*」,則表示每分鐘都會觸發事件。

/:表示從起始時間開始觸發,然後每隔固定時間觸發一次,例如在minutes域設定為5/20,則意味著第1次觸發在第5min時,接下來每20min觸發一次,將在第25min、第45min等時刻分別觸發。

編寫乙個crontjob 的配置檔案。

任務每隔1分鐘執行一次,執行的映象時busybox,執行的命令是shell指令碼,指令碼執行時會愛控制台輸出當前時間和字串「hello from the kubernetes cluster」

[root@bogon ~]

# vim cron.yaml

apiversion

: batch/v1beta1

kind

: cronjob

metadata

:name

: hello

spec

:schedule

:"*/1 * * * *"

jobtemplate

:spec

:template

:spec

:containers:-

name

: hello

image

: busybox

args

:- /bin/sh

--c - date; echo hello from the kubernetes cluster

restartpolicy

: onfailure

[root@bogon ~]

# kubectl create -f cron.yaml

cronjob.batch/hello created

檢視cronjob資源物件

[root@bogon ~]

# kubectl get cronjob

name schedule suspend active last schedule age

hello *

/1 ***

* false 1 46s 7m51s

直觀的了解cron job定期觸發任務執行的歷史和現狀:

[root@bogon ~]

# kubectl get cronjob --watch

name schedule suspend active last schedule age

hello */1 * * * * false 1 4s 10m

hello */1 * * * * false 0 31s 10m

hello */1 * * * * false 1 1s 11m

hello */1 * * * * false 0 11s 11m

刪除cron job

[root@bogon ~]

# kubectl delete cronjob hello

cronjob.batch "hello" deleted

pod排程之NodeSelector 定向排程

在實際情況下,可能需要將pod排程到指定的一些node上。我們可以通過node的標籤 lable 和pod的nodeselector屬性相匹配,來達到上述目的。root bogon kubectl get nodes name status roles age version server01 re...

Kubernates之pod檔案傳遞

本地伺服器 跳轉伺服器 pod 之間資料匯入與匯出 1.pod中資料匯出 可用lrzsz,匯出到桌面中。在pod中直接操作 從伺服器中匯入檔案到pod 中 kubectl cp root integration test hpa automation tosca csar ns vgw.csar o...

k8s排程 原理 K8s排程原理和Pod生命週期

1 k8s排程原理 pod只存在某乙個物理節點上,可以執行多個container 2 pod的生命週期 暫停pod,可以暫停deployment kubectl get depolyment kubectl scale replicas 0 deployment 刪除pod。刪除之後,狀態變成suc...