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)相关推荐

  1. 每天5分钟玩转kubernetes_DNS 访问 Service 每天5分钟玩转 Docker 容器技术(138)

    第138篇 DNS 访问 Service 在 Cluster 中,除了可以通过 Cluster IP 访问 Service,Kubernetes 还提供了更为方便的 DNS 访问. kubeadm 部 ...

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

    有时,我们希望能同时运行多个 Pod,提高 Job 的执行效率.这个可以通过 parallelism 设置. 这里我们将并行的 Pod 数量设置为 2,实践一下: Job 一共启动了两个 Pod,而且 ...

  3. 日志管理之 Docker logs - 每天5分钟玩转 Docker 容器技术(87)

    高效的监控和日志管理对保持生产系统持续稳定地运行以及排查问题至关重要. 在微服务架构中,由于容器的数量众多以及快速变化的特性使得记录日志和监控变得越来越重要.考虑到容器短暂和不固定的生命周期,当我们需 ...

  4. k8s 重要概念 - 每天5分钟玩转 Docker 容器技术(117)

    在实践之前,必须先学习 Kubernetes 的几个重要概念,它们是组成 Kubernetes 集群的基石. Cluster  Cluster 是计算.存储和网络资源的集合,Kubernetes 利用 ...

  5. DaemonSet 典型应用场景 - 每天5分钟玩转 Docker 容器技术(129)

    Deployment 部署的副本 Pod 会分布在各个 Node 上,每个 Node 都可能运行好几个副本.DaemonSet 的不同之处在于:每个 Node 上最多只能运行一个副本. DaemonS ...

  6. Swarm 如何存储数据?- 每天5分钟玩转 Docker 容器技术(103)

    service 的容器副本会 scale up/down,会 failover,会在不同的主机上创建和销毁,这就引出一个问题,如果 service 有要管理的数据,那么这些数据应该如何存放呢? 选项一 ...

  7. Service 之间如何通信?- 每天5分钟玩转 Docker 容器技术(101)

    微服务架构的应用由若干 service 组成.比如有运行 httpd 的 web 前端,有提供缓存的 memcached,有存放数据的 mysql,每一层都是 swarm 的一个 service,每个 ...

  8. 回滚 - 每天5分钟玩转 Docker 容器技术(141)

    kubectl apply 每次更新应用时 Kubernetes 都会记录下当前的配置,保存为一个 revision(版次),这样就可以回滚到某个特定 revision. 默认配置下,Kubernet ...

  9. 运行第一个 Service - 每天5分钟玩转 Docker 容器技术(96)

    2019独角兽企业重金招聘Python工程师标准>>> 上一节我们创建好了 Swarm 集群, 现在部署一个运行 httpd 镜像的 service,执行如下命令: docker s ...

最新文章

  1. Java泛型编程基础
  2. DCMTK:类DSRBasicCodedEntry和DSRCodedEntryValue的测试程序
  3. plsql学习范例--使用utl_file包将查询结果输出到文件中
  4. 2018-12 jdk_JDK 12新闻(2018年9月13日)
  5. 使用Python批量压缩图片
  6. 女人抛弃男人的唯一理由
  7. JAVA IO之管道流总结大全(转)
  8. 如何搭建积分商城软件活动功能
  9. 经纬度一度等于多少米
  10. 一个多重阴影的DIV框框
  11. 反双曲余弦函数之C#设计笔记(五)
  12. 计算机知识技能大赛总结,计算机知识技能大赛总结
  13. Qt系列文章之 QAbstractItemModel(中)
  14. 电子元器件3D模型免费下载资源
  15. 装了xmapp还需要装mysql吗_安装xamp之后,appach、mysql等问题的总结
  16. linux rpm -qip命令,linux rpm命令
  17. python迭代器 for循环
  18. matlab line属性
  19. python爬虫实践之爬取豆瓣高评分电影
  20. User-Agent 大全

热门文章

  1. **bootstrap常见常用样式总结
  2. 写文件头的算法流程及C代码实现
  3. 实战Cisco路由器交换机各型号密码恢复
  4. html5 选择列表,Html5添加基于列表的选择美化插件教程
  5. ios点击推送闪退_苹果推送iOS 14.2 beta 1:千万别更新,大批应用闪退
  6. Spring源码:BeanFactory
  7. c语言作业查询,C语言作业3
  8. 无人机怎么设定航线_收藏!老飞手的航线规划笔记在这里...(上篇)
  9. 【阿里妈妈营销科学系列】第一篇:消费者资产分析
  10. java 嵌套类 作用_java 嵌套类的分类、为什么使用嵌套类?