使用kubernetes的cronjob给你定时执行任务

简介

我有很多需要定时执行的任务,大部分是定时去请求一个接口来更新或者获取数据,之前一直使用的是xxl-job,但是这个跑在家里的树莓派中占用的资源很多,而且有时候会调度失败,所以就想着使用k8s的cronjob去给我调度任务

操作

下面是示例yaml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
apiVersion: batch/v1
kind: CronJob
metadata:
name: baidu-sign
namespace: cronjob
spec:
schedule: "33 8 * * *"
successfulJobsHistoryLimit: 5
failedJobsHistoryLimit: 5
jobTemplate:
spec:
template:
spec:
containers:
- name: baidu-sign
image: registry.bboysoul.cn/curlimages/curl:7.77.0
imagePullPolicy: IfNotPresent
command:
- 'curl'
- 'http://www.baidu.com'
restartPolicy: OnFailure

关于时区

默认调用的时间都是使用UTC所以你会返现调用的时间会相差8小时,为了解决这个问题就需要给kube-controller-manager挂载/etc/localtime

编辑

vim /etc/kubernetes/manifests/kube-controller-manager.yaml

加入

1
2
3
4
- hostPath:
path: /etc/localtime
type: FileOrCreate
name: localtime

还有

1
2
3
- mountPath: /etc/localtime
name: localtime
readOnly: true

欢迎关注我的博客www.bboy.app

Have Fun

欢迎关注我的其它发布渠道