00:00
我们再来系统的理解一下它里边的其他核心概念,第一个我们说port是什么,Controller是什么,那我们一直说这个port大家其实已经很熟悉了,所有东西呢,还是一样来参照这个官方文档,那接下来所有的东西呢,大家推荐来参照我们这一块概念里边我们工作负载这一块呢,它解释的是pod以及ctrler我们控制器之间的关系,我们这个容器呢,那就是我们的容器,Docker的这个容器镜像之间的关系,还有下边的其他解释,我们的有存储安全服务负载发现。那么后来呢,来说一下这个service和我们的这个pod,那先来说这个pod pod呢,我们说这是Co notice的这个基本部署单元,基本执行单元,所以它是在我们这个部署里边的最小单位,所以呢,我们这个pod它呢,现在就是这个样子,比如我们这是呢,一个节点node节点,Node节点里边呢,会运行非常多的这个应用程序,每一个呢都是。
01:00
以一个po的方式来给我们在这儿部署的,而pod里边呢,它可能会有多个容器,比如我们这个pod里边有两个容器,这个里边有一个容器,而且呢,有可能他们还会共享的操作我们某一个文件夹或者文件目录,或者我们挂载的什么东西,所以呢,这是我们这个pod最小的部署单元,里边可以包含各种容器,而且呢,Pod之间大家看它们之间呢,会有网络是通的,因为它呢在同一个节点,它们之间的网络是比如1010,我们这个是21234,这是我们的内部的网络插件帮我们来创建的这些他们之间的访问网络。那接下来什么是controller,我们说controller呢,是来控制管理我们这个pod的,就是我们最常用的,我们就是创建一次部署,这个部署呢,可以定义有多少个副本,所以我们这个deployment,这个ctrler就能管理我们整个副本的上限。具有。
02:00
自我修复能力等等等等,如果我们有一个节点呢,这个portd有问题了,它还会再拉起一个新节点,我们在之前hello word的时候呢,我们都测过,那这个控制器都是什么信息呢?我们在这都可以看到我们这个控制器在这来点这个控制器里边呢,他给我们介绍了非常多的这个控制器,我们这个说plic set,我们的是下一代的replication controller,也就说这个其实就是已经过时了,那现在用的都是这个控制器,这个控制器呢,它是控制我们的副本复制的,诶这是一个,还有我们的deployments,我们来进行部署,来部署操作,部署操作呢,是相当于结合了我们这个POS和这个两个合在一起来进行一个描述的,我们这个部署操作,包括部署该怎么创建等等,我们这儿都有,特别是还有我们这个流行的金丝雀部署,后来呢,我们再来说这个事情,然后呢,还有我们这个standful size,这我们称为叫有状态。
03:00
态的应用部署,那有些应用呢,我们说是有状态的,有些是无状态的,那有状态应用,比如我们这个马circle口,因为我们存的这个数据呢,是在我们磁盘里边存的,如果我们这个当前节点MYSQL崩溃了,把它停掉,在新的节点拉起了一个新的MYSQL,如果这个数据没有同步过来,那就是一个完蛋的操作。所以我们这个马S这种是一个有状态的部署,我们可以使用sta for set,还有一个叫demon set demon set呢,它是一个能确保我们全部或者某一某些节点呢都运行同一个port副本,比如我们举的这些例子,比如每一个节点上的日志收集,比如logten之类的,它就应该是一个DEMO set,让每一个节点呢都来收集自己的日志,包括我们下边说的这个,比如我们这个provincis,它的这个node节点的这个portter,它呢也应该是在每一个节点上都来运行的,我们后来呢,还会部署这些东西,所以呢,有些东西是需要。
04:00
一个节点我们都来启动,我们就可以来使用in set这种controller,所以controller那就是他说的,它就是来控制我们这个pod是该如何部署的,那接下来我们来说的这个deployment和service是什么关系文呢,应该是这么一个关系,我这呢还有一个图,这个图呢都是摘自于官方文档,我们现在呢想要部署一个东西,我们都是以portd为单位,比如我们现在在三个节点,我们现在呢部署了一些套port,每一个这个方框都是一个no的节点,所以每次部署我们应该是告诉master大家注意,这是master节点,我们要做一次部署,所以呢,这个deployment其实是master节点保存的一个部署状态信息,他知道他要做什么事,那接下来真正部署给谁呢?所以呢,接下来就会在各个节点产生真正的作用,那么这个pod就会被创建出来,好,这个pod呢,就会被创建出来。
05:00
而且呢,我们说既然测试我们好多pod呢,可以来组成一个service,因为我们可以把它暴露,咱们这个创建的我们之前的TOMCAD6我可以暴露出来,但是Tom k6的这个东西呢,它又是一个service,我们可以给大家看一下,所以service呢,相当于是暴露port的来把Tom k6的这个暴露们拿过来,我们给大家看这是不是一个service们之前运行过杠杠抓。来杠O,我们让它输出为雅,Ma们看到呢,这个东西它是一个service,也就是说service是来组合我们这多个portd的,那我们现在呢,这些服务器节点上的所有这个portd都是这个portd么?现在想要全部暴露出来,那么就可以来准备一个service service有一个网络地址,那pod之间呢,他们也有这个网络地址,而且portd的这个地址呢,是我们当前节点里边所有的portt是可以平通的,那我们这个节点之间,我们这个portt呢就不一样了,你看节点之间它呢叫12,那这个节点之间有13、14及这个节点呢还有别的12POD,所以我们想要让这些pod整个访问,我们可以把它暴露成一个service,这样大家只要访问这个service,比如我们现在这两个节点上都有来任何访问任何一个节点,我们service暴露一个端口,比如37665,那么这个端口暴露出来了以后,我们。
06:29
我访问我们任何一个节点的37665,那就是我们访问这个service,它就会自动转到我们这个节点的pod,所以这个service其实相当于是对pod的一个负载均衡,这是我们说的这个service,那service可以组合多个pod,当然也可以只有一个pod,那我们这个pod只有一个副本的情况下,我们暴露的service,那肯定就是这一个,而且我们service呢,也不一定非要以端口的方式暴露在外边,我们service的暴露方式也有很多,所以们这个service的意义,它就是统一我们应用的访问入口,我们来管理这么一组pod,然后呢,我们通过service暴露的这样一个端口来直接访问任意一个节点这个指定的端口,那就可以访问到这个portd,好,那就是基于这个,那现在把这个呢,就整体来做一遍,那这个service在做之前,我们再来理解一个图,我们把整个流程来做一遍,像我们这个里边呢,还有一个叫labels和select,因为会发现每一个压面里边呢,都会有这个玩意。
07:29
它呢叫labels labels就是来定义一些KV这个标签,然后呢,接下来这个label有什么用,它就可以这么做,比如我们现在呢,是这个pod还是同一个pod,我们看这个颜色都长得一样,但这个pod呢,比如我们给它打了一个标签叫appb,所以B他们都是一组,那我们还有这个pod打了一个标签叫PPA,然后接下来我可以产生两次部署,这两次部署呢,我们可以来选定一些pod,比如我来选一个PA的select,就是来我选打了PA标签的,那么就来选定它,我们来执行这次service暴露,那打了B的我们来执行它,我们做这次的暴露。所以标签这个跟我们的select选择器,大家就理解成我们HTML里边的什么呢?我们给一个每一个标签我们都有一个ID啦,我们可以给它起一个名或者class,我们给这些都整完ID class以后,我们可以。
08:29
用杰克瑞的选择器,那就是它,那按照这个ID,按照class来找,那我们这些标签就是为了我们以后来寻找方便,那就这个,所以接下来我们来做一个完整的service暴露流程,这个基本概念呢,我们就先来理解一下port deployment controller,那下一节课我们就来做一个完整的部署。
我来说两句