k8s 定时任务job

  • 需求

定时清理redis缓存

  • 部署文件
apiVersion: batch/v1
kind: CronJob
metadata:
  name: crontab-clear-redis
  namespace: ns-test
spec:
  schedule: "10 16 * * 1"   ##这里注意时区问题,切记!!!!
  jobTemplate:
     spec:
       template:
         spec:
           containers:
           - name: crontab-clear-redis
             image: centos:7
             command: ["/bin/bash", "-c","yum install -y epel-release && yum install -y redis && date && sleep 10 && bash -x /clear-kline.sh"]
             volumeMounts:
             - name: crontab
               mountPath: /clear-kline.sh
               subPath: clear-kline.sh
#             env:
#               - name: TZ
#                 value: Asia/Shanghai
           volumes:
           - name: crontab
             configMap:
               name: clear-kline-crontab
           restartPolicy: OnFailure

batch/v1 当前Job的apiVersion
kind 指明当前资源的类型为Job
restartPolicy 指定什么情况下需要重启容器。对于Job,只能设置为Never(启动容器失败了,会一直重新启动新的pod)或者OnFailure(启动容器失败,不会重新启动新的pod,节省资源)。对于其他controller(比如Deployment),

schedule  指定什么时候运行Job,其格式与Linux cron一致。这里*/1 * * * *的含义是每一分钟启动一次

posted @ 2022-04-19 22:43  B_en′Pǎo  阅读(294)  评论(0)    收藏  举报