00:02
乡亲们,大家好,我是你们的老朋友苏优梗,今天呢,我们一起来学习一下cober的plic set控制器。之前我们学过RC控制器,那么它和RC控制器有哪些差别?为什么官方更推荐使用set控制器呢?就借今天这个机会,咱们把它掰开了,揉碎了,讲解清楚。首先为什么需要replic side, 其实它和RC的核心功能是差不多的,都是解决了是吧,这个破D因为节点故障或者资源不足,或者还这个服务器,比方说断电了,导致的这个终止影响到你后端业务是吧?其实它会去监控这个破D,比方说诶,你这个破的节点有问题是吧,我这个破的没有办法在你这个节点上继续保障我这个服务可用了,那我就会把这个poug,哎,给他调到别的地方去。
01:07
从而保障服务的高可用。第二。无法应对流量波峰的弹性需求。就比方说我们原来是吧,我们原来就是在大概10年前吧,还是十几年前的时候,我们都是用物理机去部署这个服务。比方说我们面对双11是吧。流量那是铺天盖地的来,那你说你在物理机上,哎,你你重新重新再整这么一个环境,你是不是需要很多的这个时间成本,人力成本对不对,但是如果说你用了这个控制器是吧,你可以把这个破的进行一个横向的一个扩容。比方说原来是5个,你双十一这天,双十二这天是吧,你给他。配置成50个,500个都是没有任何问题的。
02:04
然后我们再来看一下set的一个定义,官方的定义啊,说的其实效应像刚才我们。描述的差不多,都是保障了这个副本的一个数量,然后从而确保咱们后端的这个服务可以正常的运行是吧,你看他也不也说了吗,是维护集群稳定性的基石是吧?这话多官方,然后再往后看。工作原理这个地方其实分为4步啊。我给大家给他拆开了讲解一下,首先是监控。监控什么?监控这个破的的状态。比方说你这个破的。在这个节点上运行的好好的,哎,突然你服务器断电了,那你说你这个破的还能好好的运行吗。
03:01
是吧?举个例子,就像你在家里坐着呢。你这个楼,你这个小区是吧,着火了,那你说你还能稳稳的在那坐着吗?你得往外跑是吧?其实这个地方就是一样的,他会监视这个破子。有没有问题?第二是筛选the filter.通过label select筛选器精准识别属于自己管辖范围内的pod,我们K8集群里面pod的数量通常是非常多的,那你说什么破的,都是需要u p side去管吗?是不是它通过什么来区分的?哎,他需要就是比方说怎么识别,我应该管哪些,我不应该管哪些,对不对。你不能说我这么多破的,我的集群里面可能得有,哎,500个吧,你我都管吗?不可能的,需要这么一套规则机制来筛选出自己所需纳管的破的。
04:06
第三对比是吧,就像刚才我们提到的,我们这个副本它会去持续对比的,就比方说我希望是五个,哎,那他就会一直在在那数这几个破的12345 12345,突然1234,嗯,少了一个,那他就会是吧,你看就像第4点说的调节。少了是吧,给他增加一个,多了就给他减少一个。常用操作,这个待会儿我会在环境里面用实验的方式给大家讲解清楚。第6,和deployment的关系。Deployment是K8集群里面另外的一个pod副本控制器。是吧,都是解决了这个问题,什么问题呢。
05:03
嗯,酷从容是吧,然后。监控。筛选,然后。哎,是吧,是枯头绒吗?我们来再来看一下啊啊对对比,然后调节,其实核心都是。完成这几项任务,只不过可能在一些个管理上。他会更细致一些,当然了,这个deployment我会在下次课给大家进行详细讲解。今天我们的主角就是site deployment, 我们现在有一个大概的认识就可以,好吧。最后,总结回顾。通过这次课呢,我们知道了什么是PCI是吧?它有哪些作用,它和RC的区别?然后我们知道了它的特性对不对,比方说就像PPT里提到的副本保障。
06:03
自愈能力,弹性阔,从容。然后最后是关键配置字段,关键配置字段。在下面的实验当中,我会带着大家来详细的进行讲解。各位同志,大家好,下面就开始我们的实验环节。之前呀,我们一直说RC控制器和RS控制器哪一样哪不一样,对吧,我相信你在PPT里听的也只是似懂非懂的一个。状态。今天呢,我准备了3份牙膜来充分说明讲解它和RC控制器到底哪里一样,哪里不一样。让你看到实实在在的效果。好吧,下面我们就先来看第一份牙木。我们来逐行啊,逐行看第一个API version是吧,核心组的版本。
07:07
然后kind的plic set, 要起一个plic set类型的破的控制器,然后定义了元数据是吧,给这个plic set起了一个名字,然后SPA是吧,规格描述了要开始,然后replic case2,我要起两个副本的破子,也就是我的期望是两个。再往下select选择选择什么?诶这个地方就开始和RC不一样,RC是不是直接写限值,对了,但是RS不是,RS多了一个参数叫match labels.那除了match labels是不是还有别的?对,但是这个是待会儿要讲,好吧,我们先往下看好match labels匹配哪个标签,匹配这个标签对吧?然后开始定义pod了。
08:06
我们再来看啊。破的这个原数据是吧,诶apps,然后名字相当于这是个键值对吧,你看匹配哪个匹配这个这个在哪儿,这个在这儿,就是这个意思,好再往下看,然后Spark规格描述啊,要起一个容器,容器的名字叫什么?讲这个,然后得给容器找个镜像吧,你这个容器的镜像是啥?是埃son冒哈latest对吧?然后你这个镜像的拉取策略,你看他弄的多细,还给你整个拉取策略。Image policy是吧?然后是什么呢?定义的if not present什么意思?你本地有就用本地的,你本地没有就从远端仓库拉取。很好理解吧,然后再看,因为定义环境变量,环境变量的名字是什么,就相当于是键嘛,King get host from值什么。
09:08
Y6是DNS,当然了,我们的这个实验没有用到。这个环境变量在后续课我会带大家详细讲解。好吧。下面又定义了一个,然后对外暴露了容器的80端口。第一份压泵讲完了,我们来看一下效果,好吧,来执行一下股本CTL分类,看SRS.M回撤创建当中是吧,股盆CTL guide破D回撤。是不是起来了两个副本吗?这不这儿呢,刚起的一个7秒钱,一个8秒钱,是不是起来了,对吧,还记不记得我们之前说过一个什么概念,就是它能始终保持我们的期望值。
10:02
对吧。比方说哎,我把这个给删了,按道理说它应该会自动重建一个出来,对吧,我们来试一下。5波CTL破的给它删掉,哎,一眼搞破坏回撤好删掉了。再get一下我们刚才删掉的这个L结尾的是不是没有了呀,是不是新起的一个叫P结尾的对吧,5秒前嘛,通过时间可以判断出它是新建的对不对,通过这个就可以。就是证实这个结论了吧,他始终会保持他期望的一个副本数。好,我们再来看第二份鸭木,在看第二份鸭木之前,我们先把之前做的给回退了,还记得怎么回退吗?库波CTL de是吧,杠FRS.M啊,我多回回退一个啊,因为刚才上次课我还。
11:08
啊,我看一下。Is the.哦,我知道了。哦,没事,给他都删掉。这是上次课留下来的一些个。遗留产物好删掉。好了,不影响,好,我们再来看第二份鸭母。来,我们看看第二份阿和第一份哪里不一样。上面这些都一样,我们主要看不一样的地方地方,哎,我们看它的选择器下面是不是画了一个参数啊,这个参数是什么意思,你看mass。匹配的表达式,匹配表达式啥意思?哎,这我们接着往下看啊,它定义了一个K。
12:04
是爱。然后operator运算。Exist存在。哎,我们就可以判断出来存在这个king,是不是存在这个king就可以。我们接着往下看,看看它是怎么应用的。好,开始template,要起这个破的了,要起这个容器了,然后定义了这个labels。Labels是APP冒号spring kys对吧,是不是能对应的上了存在这个king就可以对吧,存在不存在存在。很好理解是不是,然后下面的这些刚才已经说过了,这里呢就不再赘述了,重点是要掌握存在这个king k在哪儿,可以在这儿是不是可以对应上,这块也很好理解,我们一起来执行一下,看一下效果,扣波CTL。
13:07
Play-FRS一点,亚宝回车。好,晃键当中我们来看一下cooper CTL guide或回车,是不是一个已经起来了呀?为什么是一个呢?因为我们的压迫里面没有定义replic的数量。所以它默认只起一个。对吧,当然了,这次实验我就不带大家操作,哎,这个能不能就是补齐满足期望这个破得的这个实验了,我们重点来搞一下这个存在。是吧,它是怎么匹配到后面破的,按照刚才我们说的逻辑,应该是king存在就会被匹配到,对不对。来,我们先瘦,然后labs ALB啊,ELLS啊。
14:05
啊,回车我们来看一下他现在的label是不是。K+value k是不是APP?我们现在搞一个什么事,我们把APP给删掉,看看会发生什么,我们把APP删掉,是不是它就找不到这个APP了,就不满足期望了。我们来看一下到底是怎么样一个现象,好吧,这TL LA label label改哪个呀,改哪个portd,改这个port的,把这个portd的king给删掉是吧,那就哎减嘛,哎不减就删掉嘛。好,删掉了,我们来看一下发生了什么,嘿。他是不是又重新起了一个pod呀,对吧,4秒前,然后label是APP,等于SPKYS,对不对?原理就是刚刚我们把这个APP给去掉了,它不满足期望,所以重新起了这么一个坡度。
15:14
这块是不是很好理解。哎,那我们再试一下,我们再把第一个标签再给他加回去。看看会发生什么来说干咱就干good波CTL lael破的,给那个破的,给这个破的加个标签,加什么呀,哎呀,等于呃,苏小轩吧。回收好加上了,我们看看会怎么样。回撤是不是?又满足一个期望,对不对。为什么?
16:00
为什么?因为他的希望是1嘛,所以说我把它改回去以后,他就。另外一个就没了嘛,是不是问题又来了,那他为什么会删掉下面的这个呢?就是它这个为什么会删除这个这个新建的呢?这个我得给我给大家举个例子啊,就比方说我们封建科技有5个人是吧?哎,突然间有一天发现5个人干活有点吃力,不够了,我需要再招一个人。哎,我把这个人招过来了。我就发现,哎,其实这个人是多余的,我发现,哎呀,我们5个人其实干活是够的。对吧,多一个人分钱了,都不乐意了,又开始反反应,就是说我们我们5个人干活是够的,现在要决定开一个人,那你说开的话是开谁呀,开谁成本会小一些。
17:00
是不是开这个新来的成本会小一些,为什么?因为你存在时间长的员工,或者说。这里的破人。他有可能上面的数据也会更多。裁掉新建的破了或者是新来的员工。代价会稍小一些。这个就是他的一个护理的一个逻辑。这块应该也很好理解对吧。如果你没有理解也没有关系,你可以在评论区打出来,也可以找我们的助教老师。是吧,我们单独给你开个小灶,这都是没有问题的。好,继续我们来看一下第三份芽末。在看第三个压母之前,我们先把刚才的那个回退掉,DL错的啊,错啊,F rse点压ma回撤啊是吧,RCTL盖好的应该没有了啊,没有了。
18:07
好,CAT2S2的压母,我们来看一下最后这份鸭母。好,看看它定义的什么啊,看看它哪儿不一样,我直接告诉大家哪儿不一样吧,还是这个标签选择器,这里RS控制器啊,就是比RC控制器多了一个什么标签控制器的一个概念。这个也就是他为什么大家都愿意使用它呢?是吧,因为它这个标签选择器匹配破的是非常的灵活的,就不会像RC那么死,你RC你你匹配这个剑值队,你只能是这个剑值队的破子,但是RS你看可以通过存在是吧,当然了也有非存在。这个我就不演示了,原理大家肯定都是明白的,没有任何问题的,哎,我们再来看一下这个,你看这个是什么意思,也是match expressions对吧,也是匹配表达式。
19:08
我们来看一下这个是怎么匹配的K。对吧?Operator in in是啥意思呀?是不是在呀,对吧,我们都学过英语,它是不是在呀。Value.然后spring-K8S,然后封建科技一个K两个value。这里我给大家讲一下啊,印在这里就是在列表。就相当于是你这一个K,你一定得在,就是36,你这个Y61定得是这俩之一才可以。当然你说这俩都在可不可以也可以,但是你必须要满足其中之一,你必须要有一个能匹配的上这吧,我们来往下看一下啊,Template是吧,然后你看能不能匹配上我这个K是不是我对你的K,我这个value是不是在这个列表里,对吧,封建科技嘛。
20:09
这列表吧,能匹配上吧,这样啊,我们搞点小破坏啊,我们先不匹配上。你不要在列表吗?我非得不在列表,我先弄个封建行不行,我现在肯定不在列表了吧,对吧,我只有Q能匹配上,我这Y6是不是匹配不上。对吧,保存退出看一下效果后CTL play-5Y。回车报错了,为啥报错?刚才咱们手动的改了一下,它的Y流是不是就不在列表了。我们本来是印,结果你改了一下,行了,不印了,对吧?来我们给他改回去。封建是吧,来科技。
21:00
改对了。这次看看能不能。创建成功回换CTL up play-LRS2.m回撤,哎,我哦,不好意思回撤。开始创建了扣分CTL guide或回收副本。树山。符合预期对吧?来我们看一下标签吧,瘦。LBS labels是不是它是不是都在列表呀。对吧。也就是说现在这3个破的,因为哎,我这个labels标签被你被那个在列表,所以我现在被这个RS控制器那管着。那我现在能不能搞点破坏呀,我怎么的,我能不能让他都不在列表呀,我看看它会发生什么。白虎波CTL。
22:00
LA, 然后改破的,我们都给它改了。把这个破的改了,把这个破的也改了,把这个破的也改了,改了什么?你刚才不是说一定得在列表吗?那不在列表怎么办?那APP等于是吧,封建科技。999。可不可以?是吧,回车诶。哦对,因为我们要覆盖覆盖这个K,因为我们要重新修改这个K的一个值嘛,对吧,所以说我们要加一个这个参数杠杠overweight好,然后回车。修改成功了,来看一下put现在的状态,Cooper波CTL盖破。杠刚受LBBLS,我这是不是新建了3个出来,为啥新建了3个出来,刚才我们把旗帜就是之前创建的三个标签给改了,标签改了以后,那RS控制器哎就无法通过标签再找到对应的pod了。所以。
23:14
你看你看找不着了,是不是就不满足期望呢?不满足期望他是不是就要补齐创建。对吧。到这里。我相信你已经对这个。RS控制器的这个标签。的这一个使用有一个初步的一个概念,在后续的一系列的实验当中,你会更多的见到这个标签控制器的一个这么个使用,甚至以后的一些高级用法。今天这次课就到这里,感谢大家的观看,再见。
我来说两句