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...