每天5分钟玩转docker容器技术 pdf_定时执行 Job 每天5分钟玩转 Docker 容器技术(135)...

第135篇

定时执行 Job

Linux 中有 cron 程序定时执行任务,Kubernetes 的 CronJob 提供了类似的功能,可以定时执行 Job。CronJob 配置文件示例如下:

c5b2ff217a7d3ba81185b5b7b7b13904.png

① batch/v2alpha1 是当前 CronJob 的 apiVersion

② 指明当前资源的类型为 CronJob

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

④ jobTemplate 定义 Job 的模板,格式与前面 Job 一致。

接下来通过 kubectl apply 创建 CronJob。

909caf94ecbb17059b839d6a8711aa40.png

失败了。这是因为 Kubernetes 默认没有 enable CronJob 功能,需要在 kube-apiserver 中加入这个功能。方法很简单,修改 kube-apiserver 的配置文件 /etc/kubernetes/manifests/kube-apiserver.yaml:

b6d10e8e043a19fe6560a4dd05532b23.png

kube-apiserver 本身也是个 Pod,在启动参数中加上 --runtime-config=batch/v2alpha1=true 即可。

然后重启 kubelet 服务:

systemctl restart kubelet.service

kubelet 会重启 kube-apiserver Pod。通过 kubectl api-versions 确认 kube-apiserver 现在已经支持 batch/v2alpha1

fd6ea966056c5aca5e27f3a8b89e494e.png

再次创建CronJob:

fd4bb7bd280ecc06a1650f6f3b50f0f2.png

这次成功了。通过 kubectl get cronjob 查看 CronJob 的状态:

bff7d1cc7865cac92ad51d2ded0d87ae.png

等待几分钟,然后通过 kubectl get jobs 查看 Job 的执行情况:

ec910605afd310796ff3a3db90a8c1b1.png

可以看到每隔一分钟就会启动一个 Job。执行 kubectl logs 可查看某个 Job 的运行日志:

60999e6d57477ff10869a2eed7b5c387.png

精彩推荐

并行执行 Job - 每天5分钟玩转 Docker 容器技术(134)

Job 失败了怎么办?- 每天5分钟玩转 Docker 容器技术(133)

用 k8s 运行一次性任务 - 每天5分钟玩转 Docker 容器技术(132)

运行自己的 DaemonSet - 每天5分钟玩转 Docker 容器技术(131)

60cebe37a1cd70221c0a4a2a403523b6.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值