定时执行 Job - 每天5分钟玩转 Docker 容器技术(135)
2018-02-28 00:00
731 查看
摘要: Linux 中有 cron 程序定时执行任务,Kubernetes 的 CronJob 提供了类似的功能,可以定时执行 Job。
Linux 中有 cron 程序定时执行任务,Kubernetes 的 CronJob 提供了类似的功能,可以定时执行 Job。CronJob 配置文件示例如下:
①
② 指明当前资源的类型为
③
④
接下来通过
失败了。这是因为 Kubernetes 默认没有 enable CronJob 功能,需要在 kube-apiserver 中加入这个功能。方法很简单,修改 kube-apiserver 的配置文件 /etc/kubernetes/manifests/kube-apiserver.yaml:
kube-apiserver 本身也是个 Pod,在启动参数中加上
然后重启 kubelet 服务:
kubelet 会重启 kube-apiserver Pod。通过
再次创建CronJob:
这次成功了。通过
等待几分钟,然后通过
可以看到每隔一分钟就会启动一个 Job。执行
书籍:
1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html
Linux 中有 cron 程序定时执行任务,Kubernetes 的 CronJob 提供了类似的功能,可以定时执行 Job。CronJob 配置文件示例如下:
①
batch/v2alpha1是当前 CronJob 的
apiVersion。
② 指明当前资源的类型为
CronJob。
③
schedule指定什么时候运行 Job,其格式与 Linux cron 一致。这里
*/1 * * * *的含义是每一分钟启动一次。
④
jobTemplate定义 Job 的模板,格式与前面 Job 一致。
接下来通过
kubectl apply创建 CronJob。
失败了。这是因为 Kubernetes 默认没有 enable CronJob 功能,需要在 kube-apiserver 中加入这个功能。方法很简单,修改 kube-apiserver 的配置文件 /etc/kubernetes/manifests/kube-apiserver.yaml:
kube-apiserver 本身也是个 Pod,在启动参数中加上
--runtime-config=batch/v2alpha1=true即可。
然后重启 kubelet 服务:
systemctl restart kubelet.service
kubelet 会重启 kube-apiserver Pod。通过
kubectl api-versions确认 kube-apiserver 现在已经支持
batch/v2alpha1:
再次创建CronJob:
这次成功了。通过
kubectl get cronjob查看 CronJob 的状态:
等待几分钟,然后通过
kubectl get jobs查看 Job 的执行情况:
可以看到每隔一分钟就会启动一个 Job。执行
kubectl logs可查看某个 Job 的运行日志:
小结
运行容器化应用是 Kubernetes 最重要的核心功能。为满足不同的业务需要,Kubernetes 提供了多种 Controller,包括 Deployment、DaemonSet、Job、CronJob 等。本章我们通过实践详细学习了这些 Controller,并讨论了它们的特性和应用场景。书籍:
1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html
相关文章推荐
- 定时执行 Job - 每天5分钟玩转 Docker 容器技术(135)
- 定时执行 Job - 每天5分钟玩转 Docker 容器技术(135)
- 定时执行 Job - 每天5分钟玩转 Docker 容器技术(135)
- 并行执行 Job - 每天5分钟玩转 Docker 容器技术(134)
- 并行执行 Job - 每天5分钟玩转 Docker 容器技术(134)
- 并行执行 Job - 每天5分钟玩转 Docker 容器技术(134)
- 并行执行 Job - 每天5分钟玩转 Docker 容器技术(134)
- Job 失败了怎么办?- 每天5分钟玩转 Docker 容器技术(133)
- Job 失败了怎么办?- 每天5分钟玩转 Docker 容器技术(133)
- Job 失败了怎么办?- 每天5分钟玩转 Docker 容器技术(133)
- Job 失败了怎么办?- 每天5分钟玩转 Docker 容器技术(133)
- 如何共享数据?- 每天5分钟玩转 Docker 容器技术(41)
- 如何部署 Calico 网络?- 每天5分钟玩转 Docker 容器技术(67)
- 限制容器的 Block IO - 每天5分钟玩转 Docker 容器技术(29)
- 限制容器的 Block IO - 每天5分钟玩转 Docker 容器技术(29)
- Dockerfile 常用指令 - 每天5分钟玩转 Docker 容器技术(16)
- Calico 的网络结构是什么?- 每天5分钟玩转 Docker 容器技术(68)
- macvlan 网络隔离和连通 - 每天5分钟玩转 Docker 容器技术(57)
- 实现容器的底层技术 - 每天5分钟玩转 Docker 容器技术(30)
- 如何用 Graylog 管理日志?- 每天5分钟玩转 Docker 容器技术(93)