基于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小时。注意在设置定时任务的时候一定算好时间

 

posted @ 2021-03-02 15:16  夜夜漫笔  阅读(1534)  评论(0编辑  收藏  举报