00:02
好,那。刚才呢,已经给大家讲过了我们的C容器的相关的注意事项,包括给大家已经演示了,对吧?那你会发现我们可以在C里做一个简单的就绪探测,其实这部分的功能在C里去完成的话不太友好,原因是什么呢?它并不是,毕竟不是我们的主程序里面的。我们可以想一下,如果你在我们的INC里去做就绪探测的话。万一对吧,他是不是探测完成以后,他退出了,万一到我们的阿帕奇PP里面在运行的时候,结果连不上了,那这个就绪是不是不太好啊。对吧,我想做的是什么,想做的是在我的主容器里面去做对它的探测,那这样的话,如果它都探测成功的话,那一定能连接上。你别你的初始化容器。来对它探测,探测的好好的结果,我的主容器访问不到,是不是也白搭啊,因为我们最终的目标是不是还是让主容器能够访问到的。
01:08
那所以这时候呢,就需要借助到我们的探针,那对于探针来说呢,我们有些这样的概念需要给大家解释一下,探针是由light对容器执行的定期诊断。要执行诊断,调用由容器实现的canly有三种类型的处理程序。好,那探针是由CU light对容器执行的定期诊断,需要注意一下,第一个CU light对容器执行的。也就意味着,对于我们的探针来说,它并不是由我们的主服务器去发起的,而是由每一个node所在的。Light去完成对它的检测,那这样的话,我们的主调度的压力就会更小,对吧?好,那light调用由容器实现的,我们的处理程序有三种类型的处理程序,第一个叫e ec。Action,第二叫TCP socket action以及htp get action3种类型。第一个代表是在我们的容器内执行指定的命令。
02:09
如果命令返回码为零,哎,成功了,非零都不成功。第二个TCP socket,也就对我们的IP地址进行TCP的检测,如果端口能够正常连接,代表成功,如果端口不能被连接,失败。Http get X型对指定的端口和路径上的容器的IP地址执行IP get请求,如果响应码大于等于200小于400成功,大于两百两百二叉叉是不是代表成功啊,三叉叉代表跳转,那400的话是不是就代表有一定问题了,比如权限,比如页面丢了等等对吧?所以大于200大于等于200小于400是这边认为是成功是非常合理的。那我们的探针呢,都是由这三种类型。
03:02
对吧,好,那并且探针的探测会获得以下三种结果之一,第一个成功了,我探测通过了,第二个失败了,我探测没通过,第三个。我根本不知道它的探测结果。那所以呢,我什么都不会动,什么都不会动的结果就是这个容器被刮死。能理解我的意思吗?因为我们探测不执行成功的话,那这个容器是不是只能在等待探测成功以后才能被就绪,也就是刮死。那探测方案呢,有两种,又是一个分类,对吧,第一种叫levelness,第二讲readness levelness呢就是一个存活探测,Read呢叫做就绪探测,那给大家直接解释一下,Read检测成功以后。我们的慢C才能够被宣布能够被对外正常访问。
04:01
那不然的话都是feel。那。Levelness呢?会跟随着整个容器的生命周期,也就是从我们的levelness启动到炮的结束,它都会存在,它会持续循环的去检测这个容器里面的应用程序,或者怎么怎么样的一些资源到底还可不可用。如果不可用的话,那Co就会把这个容器给杀死,杀死以后呢,如果你的重启策略为我们的always的话,那整个pod是不是就要需要去重启?没问题吧,那这个呢,就是我们的探针的一个简单的说明,好,那接下来呢,我们可以给大家看一下探针到底怎样去实现。好。就去检测。IP的方式。带大家去看一下什么含义,首先第一个IP沃使用了我们的接口的主版本。
05:02
看的类型为po。Me的元素信息,这个portd叫readness RPG port。那这个pod所在的名称空间呢?在default名称空间下。详细的一些描述对吧?描述我们的一个容器的好容器的名称叫什么呢?叫readness IP contain。它的镜像叫什么呢?叫Linux杠,Map冒号V1。Image policy,也就是我们的镜像的下载策略,If not present好代表的含义就是如果有的话,我们就不下载。Read pro那代表的含义就是我们的就绪检测,对吧?好检测的方案p get的检测方案。那端口是什么呢?端口是HTP,或者我们可以写成八零。好,PA检测的路径是在你的这个八零的根下有个index1.l。我们知道这个镜像我们是不是打开过啊,里面是不是只有一个inex HL。
06:01
和house ipm对吧,根本没有什么所谓的INDEX1IPM,所以这个检测是不是理论上是不通过的?底下定义了一个我们的延时,也就初始化检测的延时。就是一秒以后,这个容器在启动一秒以后,我再开始检测,这个是我们的重试的检测时间啊,多秒以后再重试一下,多少秒以后再重试一下。好,那我们把这个给它创建一下。Man。我们可以把这个镜像给它改一下,改成我们之前用过的,对吧,我们已经下载到本地的叫做。哈点it硅谷对吧。好库ctl create、杠、fz ma。
07:07
第十行。多了一个冒号对吧,重来一下。Po。再来成功了对吧,那这个我们稍微改一下哈,有一点小问题对吧,没有注意到。那CT啊。我们再看一下。看到了吗?虽然这里显示的状态是running运行的,但是不好意思,我没就绪,是这个意思吧?原因是什么?我们可以看一下日志对吧?看一下他的详细信息。
08:01
看的是我们的read at port。好,看这里。Pro field检测失败了,对吧?P pro field with w code 40440是不是代表页面不存在啊,是这个意思吧。啊,那可以怎么办呢?C get。QCTR我们可以进入到这个容器内部,Eec代表进入,那进入是什么容器呢?是这个容器,是这个pod,如果这个pod里只有一个容器的话,我们是不需要指定这个pod里面的容器的名称的,如果有多个,你就需要指指定一下这个pod里的什么容器你要进入,因为我们这一个zness啊,我们里面是不是只有一个慢C啊,所以我们就可以不指定杠C了,杠it代表交互和打开一个TT后面呢?加一个杠杠,这是它一个固定格式要运行的命令,运行的是并下的。
09:00
SH。好,CD到U下下的,N下的。HTM录像。我们去echo一个。叫什么呢?叫INDEX1对吧,我没记错的话,对INDEX1ML。好,我们退出。City啊,Gett,我们再来看一下,看到了吗?已经追地了。因为我已经有这个文件存在了,所以我可以就绪了,这就是我们的就绪检测,那我们再回到我们刚才讲的这么一个情况上,我们去看一下,回到我们的PC上,我们去看下刚才的这个实例,那在这种情况下,我们在使用in的C对它进行手边的执行成就距检测的话,是不是就不太友好了,In的C我们就把它当做一个环境的初始化工具即可,那这时候我们就可以把检测的方案把它拿到我们的read上了,对吧?
10:05
好,那这样的话,我们拿这个readness pro呢,会去对这里的。买CQ进行检测。对这里的买车库进行检测,那这样的话它的效果是不是就更好了?能理解我的意思吧?这是我们的第一个叫。那继续往后看存活检测,好,这里又给大家举了一个例子,对吧,通过我们的E的方案。IP,我省唯一看的类型为po。元素信息啊,这个pod叫levelness e port。放在哪个名字空间下呢?放在default名字空间下。那这个pod里运行的第一个容器叫leness e contain。那镜像呢,是我们的ID硅谷下的一个白boss,对吧,我们稍微给他改一下名字,等会。下载策略,如果本地有就不从远程下载。
11:01
这个需要注意一下,我们之前在讲镜像的时候,如果他的basic boss后面没有加版本的话,默认是不补全为拉,那只要是拉。K8S就会从远程下载对吧。我这句话是有个前提条件的,你的下载策略必须是默认的。默认的。那默认的是我们的。Always对吧,总是从远程下载。好,那如果是默认的话,他就会去下,如果是我们的if副not的话,他就不会去下,本地有的话,哪怕是拉的标签,他依然不会下载,需要大家注意一下。好,那这个镜像运行了一个什么命令呢?运行的是touch创建了一个文件,休眠60秒以后把这个文件给它删除。听明白了吗?就是先创建一个文件,休眠60秒,把这个文件删除,再休眠六分钟。好,然后呢,在底下写了一个levelness pro,也就是每个levelness和pro levelness和我们的read是绑定在一个容器下的,需要注意一下。
12:08
那这个里面呢,运行了一个命令叫test杠。Time不下的烂就简直,这个文件到底存不存在?那如果是存在,那是不是代表返回值为零吧?零是不是代表正常?如果不存在呢?归零对吧?好,那延时一秒,也就是我们的整个容器启动一秒以后,它才开始进行我们的read的检测,以及从事的循环时间为三秒,默认是秒哈,就是我先检测第一次,三秒以后再检测一次,三秒以后再检测一次,以此类推。那我们可以把这个实验给大家看一下效果。Los。杠EMA。我们把这里的镜像给他换一下。
13:06
Boss对吧。我们给白boss啊,不打标签了,就这样吧。好保存,退出ctl。Create-F,我们先把现在有的都给清了吧。QQC条。Delete。然后呢,Portd杠杠二代表删除所有的pod,当然是默认的名字,空间下。
14:07
都删完了,我们再看一下SVC好像还有不少是吧。CU CL delete s VC是MYDB。My s services。好,都删掉了,那接下来我们去运行一下create-F的e pro。
我来说两句