基於k8s mysql 數據備份


1.創建cronjob的文件

CronJob所描述的,正是定時任務。

  • 在給定時間點只運行一次
  • 在給定時間點周期性地運行

一個 CronJob 對象類似於 crontab (cron table)文件中的一行。它根據指定的預定計划周期性地運行一個 Job。在這里簡單的說一下cron,是指unix中cron表達式。比如:"*/1 * * * *",這個Cron表達式里*/1中 *表示從0開始,/表示"每",1表示偏移量,所以它的意思是:從0開始,每1個時間單位執行一次。Cron表達式中五個部分分別代表:分鍾,小時,日,月,星期。所以上述這句Cron表達式的意思是:從當前開始,每分鍾執行一次。那么我們可以利用這個機制來指定創建mysql備份任務的對象:

 

 

 

 

在這個Yaml文件當中,最重要的關鍵詞就是jobTemplate。它是由job對象控制的Controller,還有幾點關鍵的屬性我在這里解釋說明一下:

  1. spec.concurrencyPolicy這個屬性主要是由於定時任務的特殊性,很可能某個job還沒執行完,另外一個新的job就產生了。它的取值分別為:Allow(job可以同時存在)Forbid(不會創建新的job,該周期會被跳過),Replace(新產生的Job替換舊的,沒有執行完的Job)
  2. 如果某一次Job創建失敗,這次創建會被標記為"Miss"。當在指定的事件窗口內,miss數目達到100時,那么CronJob會停止再創建這個Job,這個時間窗口可以有spec.startingDeadlineSeconds來指定
  3. 在Job對象中,負責並行控制的參數有兩個:spec.parallelism它定義的是一個Job在任意時間最多可以啟動多少個Pod同時運行。spec.comletions它定義的是job至少完成的Pod數目
  4. 這里容器與宿主機時差相差8小時。注意在設置定時任務的時候一定算好時間

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM