• psoracle
    2022-07-20
    回答一下今天的作业: 1. 你是怎么理解 Kubernetes 组合对象的方式的?它带来了什么好处? Kubernetes中组合对象,类似于面向对象编程中的继承,即不破坏父对象的功能,又扩展了自己领域场景中的功能,在API层面也简单了,只需要处理自己扩展的功能即可,比在一个对象上做加法进入逻辑判断要优雅很多。 2. Job 和 CronJob 的具体应用场景有哪些?能够解决什么样的问题? Job与CronJob分别对应一次性调用的任务与周期性定时任务;前者任务只运行一次,比如用在手工触发的场景如数据库备份、恢复与还原,数据同步,安全检查,巡检等;后者用于定时任务,非手工触发,由CronJobController每隔10s遍历需要执行的CronJob,同样也使用在如数据库备份、恢复与还原、数据同步、安全检查、定期巡检以及所有周期性的运维任务。 Job与CronJob解决了任务的管理,如执行超时、失败尝试、执行数量与并行数量、任务结果记录等等,方便对任务执行的监控与管理;另外,Pod解决了批处理任务关联打包统一调度,容器解决了任务运行时环境。

    作者回复: great

    共 2 条评论
    26
  • Geek_b9dad2
    2022-07-20
    课外小贴士里第4条和第6条感觉是有冲突的,这个怎么理解呢?

    作者回复: 一个是Job,一个是CronJob,而且CronJob是能够控制Job的,官大一级压死人。

    
    16
  • 花花大脸猫
    2022-07-29 来自陕西
    不得不服这个设计,为后续扩展带来了无限的可能,而且又不影响现有的pod体系功能!原来面向对象的思想还能在YAML中这么用。

    作者回复: 这个正是Kubernetes能够战胜swarm、mesos的根本原因。

    
    9
  • Christopher
    2022-07-20
    终于知道老师昵称的由来了

    作者回复: 有那么一点关系,笑。

    共 2 条评论
    5
  • 三溪
    2022-07-28 来自陕西
    我想补充一下关于job配置的一个细节,大家可能复制黏贴罗老师的配置所以不会发现这个问题。 job.spec.containers.template.spec.containers.image是不能指定镜像版本号的,只能指定镜像:完整的镜像:版本号只能由pod定义,否则会从互联网拉取镜像,如果能联网当然没事,离线环境会直接报错无法拉取镜像,虽然你本地确实存在该版本的镜像且imagePullPolicy设置为Never或IfNotPresent。 比如我是离线环境,job里image配置为:- image: busybox:1.35.0,那么就会报错无法拉取镜像。

    作者回复: 这个小细节确实比较重要,因为我是一直联网,也没太注意。

    共 5 条评论
    4
  • Geek_7ba156
    2023-02-08 来自江苏
    666,超爱这种讲课方式。老师你一定要多出课啊,笔芯~

    作者回复: thanks

    
    3
  • aoe
    2022-08-10 来自北京
    原来一直奇怪为什么有那么多spec、template不停的嵌套?今天终于明白了:不同层级自己描述自己的,相互不影响,不合陌生人说话

    作者回复: 是的,就是对象套对象的组合,把它转换成图形也许会好理解一些。

    
    3
  • 密码123456
    2022-07-20
    Command 用双引号里写命令,不能有空格。

    作者回复: good

    共 3 条评论
    3
  • Demon.Lee
    2022-12-29 来自上海
    最近在把业务服务迁移到 Kubernetes 上部署,其中就有一个定时服务,包含 30 个定时 job。我想着直接搬到 Kubernetes 的 CronJob 上来,这样开发团队就少维护一个第三方的开源框架了(用于定时任务调度)。 但我发现一个问题,导致迁移不了,就是触发频率:kubernetes cronjob 只支持到分钟,不能到秒级调度,即最高是每分钟运行一次任务;但他们的定时任务,有些是每 10 秒运行一次,15 秒一次,或 30 秒一次。 这种分钟内的调度,搞不定,感觉非常遗憾。 我在想,标准的 cron 只支持到分钟级别,那么分钟级别以内的定时调度呢?可能就是常驻进程了。

    作者回复: 分钟以下级别的还真不能用crontab来调度,得想另外的办法了,比如用shell+sleep。

    共 2 条评论
    2
  • 西门吹牛
    2022-07-25
    组合的方式能少写很多代码,Java 很多中间件都这么搞,组合优于继承,基于接口而非实现编程,自由组合

    作者回复: great

    
    2