00:00
两边都已经导入成功了,我们再看一下这里已经对进入了我们的退出模式,对吧,所以我们需要把这个容器给它删,泡的给他删一下,因为失败了很多次了,他才不会再去重新尝试了。好,我们看一下先是running,对吧,我们前两步显示它还是running呢,然后直接到我们的come light come light,那我们去库get job,我们去看一下,这里已经完成了,对吧?因为它的退出码为零,我们可以看下它的日志log,好,这就是我们的派的2000位对吧?好,它已经预算成功了,那这个就是我们的job的这么一个演示,那我们再看下一个c job Spark,它的一个SPA的设置,对吧,SPA time LA呢,同我们的PA的格式是一致的。
01:20
Restart policy只支持never和onfield,这里需要注意一下,为什么没有always呢?Always的含义就是一旦当我们的容器退出以后,它会重新去启动,也就重启这个容器,重启这个pot,对于我们的可教来说,它是一个批处理任务,它执行完成以后,本来就不应该继续去有别的工作了,结果你现在把它重启,这时候就没完了。所以它只支是两种重启策略,一个是never,一个是unfield never的含义就是永远不重启,Unfiel的含义就是只有失败的时候才重启,这是比较合理的,对吧?你的批处理并没有正常执行成功,你凭什么就?
02:01
完了呢?是这个意思吧,好,这个需要大家注意一下,下一个当炮,当单个炮D是默认的炮D成功运营以后,Job退出,代表job成功执行退出了,对吧?有这么几个值,我们看第一个值Spark的comption,那标志我们结束的时候需要运行几个成功的pot,默认为一个,这个的含义就是我们的job或c job会去管理对应的pod的运行,那pod如果返回码为零的话,代表一次成功,那默认就代表这个job果已经成功运行完毕了,如果你的complex,是设置为R的话,这个pod需要运行为两次返回码为零的这么一个容器退出状态才代表这个叫我成功执行,需要注意一下,好,下一个标志我们运行并行运行的pod的个数。Ping。好,那这个含义是什么呢?如果你成功的个数为四个的话,那我同时能不能运行一次性运行两个portt同时做这件事情呢?如果你允许的话,那你就可以把这个指示为R,默认为一,以及最后一个我们的active dead LA second,对吧?也就是我们标志的pod的最大从事最大时间,超过这个时间以后就不会再从事了,代表这是job的失败,Cor job的失败需要大家注意一下。好,那口王叫会有一些特点,第一个在给定的时间运行一次,周期性呢,在给定时间运行,这里也说了,口王叫本其实就是基于时间管理的这么一个job,也就是意味着它跟我们的deploy比较像,Deploy呢,通过创建我们的R进行pod的管理,那酵呢,通过创建pod进行管理。
03:48
并且它的可用条件是当K8S集群大于1.8以后,才可以使用我们的克隆胶好一些典型的用法,第一个就是在给定的时间内去调度我们的job去运行。
04:02
那比如我们去周一性的备份一些数据库啊,发送邮件等等,对吧,那这个比较容易理解,在之前我们也已经大批量的去讲过了,好,我们看一下我们的c job的Spark,它的描述方式,第一个是still了调度并填字段,根据我们的指定运行的任务,运行的周期格式同我们的crown table一致,那在这里会有个模板,我们可以看到这里有一个叫s still,对吧,分时日月周。这里的含义是不是就是每分钟啊,对吧?除以一就是每分钟,除以二就是每两分钟,跟我们的c table一致,在这里我们就不太去详细讲解了。好,那下一个job time light,我们的job的模板,模板指定我们需要运行的任务,格式同我们的job一致,好,以及指定我们的starting dead LA second,对吧?指定我们的启动job的期限,秒级别的默认是秒级别对吧?该字段是可选的。如果因为任何的原因而错过了调度时间,那么错过执行时间的角被认为失败,如果没有指定则没有期限。这个是什么含义呢?就是。
05:13
我们的job会去创建一个job,会去基于时间创建对应的job,那job去运行,如果这个job运行了很长时间的话,这个任务还没有结束。那我就会认为超过这个时间以后,我就会认为,哎,这是一个失败的任务,好,那下一个。Concu policy并发我们的策略,该字段也是可选的,也就是允许我们并发或者是forbid不允许我们的并发,以及我们的repl取消我们正在运行的pop job来拿一个新的去代替,这是我们三种不同的并发策略。第一个就是允许并发交。允许并发叫辅的含义就是我一次性你创建好几个叫辅,同时去运行是没有问题的。第二个是我们的静止并发运行,这是什么含义呢?你有有些人可能还会问,诶,叫我一次只会运行一个容器,为什么会并发呢?我们想一下,如果每分钟都运行一个叫果,每分钟都有一个叫,这是一分钟之前的,这是第二分钟的job,是不是有可能在第一分钟的时候我启动一个job,在第二分钟时我启动第二个job,这个概念是没有问题的,但是我到启动它的时候,第一个还没有完成。
06:32
那这样的话怎么去处理,如果是漏的话,代表诶我运行第二个,你第一个也正常运行没有问题,如果是我们的forbid的话,禁止并发运行,那前一个没有结束,不好意思,我第二分钟的这个叫补,我就不创建了。那还有我们第三种repl取消当前正常运行的叫,也就是我们的一分钟的,一分钟之前的这个叫本就被删除了,我们直接运行这个新的脚步去运行三种不同的策略很重要,对吧,好。
07:07
下一个挂起该策略也是可选的。如果设置为true,后续的所有执行都会被挂起,它对已经开启执行的脚步不起作用,默认值为false。好,那下一个好,一个是我们的成功的历史保留策略,一个是我们的失败的历史保留的这么一个限制,对吧?好,那并且默认情况下,他们的分别设置为三和一,三和一也就意味着成功它会保为三个副本,失败了它会保存,只保存一个副本,大家可以通过这两个法子去限制它的历史,限制历史的副本限制,对吧?好,设置零以后,它的所有的教务完成后就不会被保留。那讲了这么多,我们可以看一下这么一个job的书写方案V版本对吧?类型类型名称叫hello,调度的时间,分时日月周对吧?好,Job time,那pack描述信息汤跟我们的portt里是一致的,这里呢,运行了一个basic boss对吧?运行了一条命令,输出当天的时间,输出当天的时间,并且欢迎了我们去访问这么一个集群对吧?欢迎了我们这么一个集群,好,那从你策略为我们的onfield,也就是不失败。
08:30
折不会重启对吧,不是失败退出的就不会通气,我们把它给运行,我们看一下效果,VMCN叫点接麦主播ctrr play-FC叫好创建成功了,Create get c叫,可以看到这里已经用hello了,并且它的方案在这里都会显示出来,那我们再扣个CT啊,Get一下job。
09:05
没到时间是吧,我们可以把这个pad job给删除了,防止它影响我们的位的实验。我们去看一下当前的炮。我们也可以把我们的deployment给删除。好,我们再看一下我们的part,这里已经显示已经有一个hello完成了,对吧,我们可以库city啊,Get ground和那个D,好,库city get job。
10:05
看到了吗?好,那我们再稍等一会儿,我们可以加看W对吧,一分钟以后他又会再来一次。好,第二个第三个都已经串联出来了,对吧?好,第二个第三个只是一个输出的一个过程而已,叫看到了吧,并且两个都成功了对吧?库CR get pod,我们看一下这两个都已经成功了,我们可以看一下它的日志,不过这个r log。
11:05
对吧,当天的时间我们再可以看一下他的库珀CTR get一下我们的看一下我们的log没问题吧,一个是24,一个是25,对吧?好,那这样的话,我们的n table就已经研制成功了,我们就把它给清掉吧,不然c job对吧,怎么c table,好,不然的话它会移植去执行,那这个呢,就是我们的c job。没有问题对吧?好,还有就是cor job的一些本身的一些限制,创建cor job的操作应该是一个密等的,密等这个概念之前一直给大家去提,幂等的含义就是从数学里引入了一个概念,对吧?函数的幂次方等于函数本身运行的结果,这就是一个幂等函数,对吧?好,在我们的c job里,因为它会重复的去循环一些任务,如果你的操作不是me的呢?可能如果你的之前的策略,比如是我们的alo或forbidden,或者是我们的repl的话,就有可能第二个运行会影响第一个运行的结果,对吧?那这样的话,我们再去重复运行的时候,得到的结果可能不是我们想要的结果,那这就是c job的这么一个本身的限制,需要大家注意一下。
12:19
还有就是job,它是否成功并不太好去判断,原因是它去运行一个job job的成功可以被判断,但是可job无法去链接到job的成功状态。能理解我的意思吗?Job只会定期的去创建对应的job,仅此而已。这也是口教本身的一个限制,需要大家注意一下,好,那这个呢,就是我们的资源清单了,对吧,那对于我们之前给大家提到的还有一个叫和hpa呢,在这里没有给大家去讲解,还是那句话。因为我们现在所学的知识不足以我们去实现这么两个。
13:05
控制器的实验,所以在后面我们讲到对应的服务的时候,我们再给大家去补充可以吧,好,那今天的视频呢,我们就先讲到这里。那到时候呢,我会把这个破的这么一个镜像放到我们的。嗯,这么一个共享的目录中,到时候大家直接去下载即可,因为这个在国外直接下载还是比较慢的,对吧?好,那这节课呢,我们就先讲到这里,我们下节课再见。
我来说两句