00:00
好,前面呢,我们说了一下K8S集群的工作方式,接下来我们再来说一下组件架构,这一块呢,也是KS里边非常难理解的一部分,我们可以看到这张图右侧其实就列举了K8S集群整个要工作起来,它的一些核心组件,包括呢,每一个组件的名字,每一个组件要干什么,这也有一张图,但这个图呢不是很好理解,虽然说官方文档呢,它对每一个组件有了解释,这一块都是我抄官方文档的,当然如果我去来解释这个东西,可能大家就晕了,所以我们现在呢,就以生活中的一个例子,能最快的方式让大家先理解集群的工作方式,如果大家想要再仔细的理解,那就在后来的整个使用实战过程中啊,大家也可以翻阅相关的资料,再来看他的,呃,详细的流程,我们先来看一下这个组件的架构方式,那就还是这张图,这是K8S官方的图,首先K8S整个呢,这是一个K8S集群,我们称为K8。
01:00
Sluster,那这个集群呢,我们类比成生活中的一个例子,比如我们的什么什么集团,比如我们的硅谷集团嘛,我现在假设这是一个硅谷集团,好,硅谷集团呢,就代表了整个硅谷产业集群,对吧?那接下来呢,我们现在硅谷集团要开发一些项目,比如我们要搞飞机对吧,搞火车等等等,那接下来呢,真正的开始研发这些项目,可能是一些,呃呃,我们硅谷的这些风场,所以呢,我们这些集群里边的每一个这个东西我们称为一个节点,节点就是集群的每一个服务器,把这个呢称为节点,这个节点呢,大家就认为是我们的一个分场,哎,真正干活的对吧?把这个画成这样吧,假设呢,这是硅谷的硅谷东厂,好,假设这是硅谷东厂,然后呢,这个呢是硅谷的西厂,后呢,这个是硅谷的南厂。
02:00
好,硅谷的三个分场对吧?所以呢,我们这些集群里边每一个服务器节点,其实就是我们说的一个分场,我们可以开办很多分厂,对吧?然后呢,接下来你想要让呃分厂干活,将下来就得有一个我们整个硅谷集团的相当于总控中心,这个呢,我们把这叫ctrler来,我们叫控制面板,而这个控制面板呢,我把这个换一下,这就是我们整个集团的控制中心,集团控制中心,这个控制中心呢,我们就直接叫硅谷总部吧,硅谷总部对吧?这个大家就很好理解了,这硅谷的总总部每一个风厂呢,要搞什么东西,等于我们这个总部发号施令,所以呢,我们的这个controller派这一层呢,我们叫硅谷总部,当然我们这个总部呢,应该是我们落到K8S集群里边,这又就应该是我们master。
03:00
侧节点就是呢主节点所在的位置,所以呢,这一块呢,就应该是主节点master,而这些风场呢,就是我们说的worker工作节点,这风厂呢正式干活好,我们有了这个感觉以后呢,继续大家想啊,我们现在呢想要干活,那接下来我们就得有集集团的一个决策者,我们要做什么活,做什么活,所以呢,在这一块呢,有一个这个东西叫CM,它的全称呢叫controller manager,叫控制器管理器,控制器是什么东西,我们先不说,这个呢,就类似于我们整个的这个决策者领导人对吧,决策者这是我们真正的决策者,决策者呢,决定我们干什么好,我把这个决策者放在这儿,当然决策者呢,现在某一天突然决定,哎,我们现在我们想让硅谷呢搞飞机项目,所以呢,接下来他签署了一个搞飞机文件,对吧,所以呢,将来这些我们整个。
04:00
集团在运行过程中的所有核心数据,我们得有一个集团的资料库来保存,所以呢,这一块etcd就是集团的资料库,Etcd是什么一个什么呢东西呢,它就是一个类似于red的一个KV存储库,就像MYSQ一样,这都是存数据的,所以呢,我们整个集团的所有核心工作数据都在这个资料库存着呢,所以呢,这个决策者呢,他当然不亲自把他的这个决策文件啊啥存到资料库对吧,总得有秘书帮他,所以呢,接下来看好啊,跟决策者对接的是这个叫API,也就是我们所谓的API server,这个呢,大家就认为这是我们的秘书部,对吧,我突然呢,某一天有一个决策,我签署了一个文件,这个秘书部,然后呢,我的秘书就负责给我干杂活,我的这个秘书呢,把我签署的这些文件啊东西啦,我存到资料库啦,干嘛?所以呢,这是我的秘书部,我真正要干什。
05:00
什么事了,有我的秘书,相当于给我做一些记录,把核心的数据存到这些资料库,好,现在呢,我突然我这个决策者说我想要搞飞机了,那接下来我这个搞飞机项目是不是就得有人啊,包括我这个飞机项目,我东厂去搞,西厂去搞,还是南厂去搞,哪个厂搞合适啊,因为每一个厂的资源配备不一样,比如东厂呢,它的场地很大,对吧?呃,什么四核的CPU啊,80G的内存等等等,西厂呢,只有5G的内存,所以呢,我们每一个项目合适在哪个厂,所以接下来就得有人去根据厂的这些特性,就来决定我们这些项目到底要哪个厂来搞,所以这个人是什么呢?这个叫schedule了,叫调度者,所以呢,我们集团里边有我的决策者,还有一个叫调度者,这个是schedule了,我们这个调度者呢,就负责调度者,然后呢,就负责看我们哪些厂能到底能搞这个项目,最终把我们的这个项目调度过去。
06:00
好,这是我们的调度者,然后呢,大家还应该注意的这个图里面的一个细节,就是我们的这个调度者呀,他呢,比如现在我们想搞一个项目叫搞飞机,对吧,飞机项目,飞机项目这个这就相当于我们是开发的一个应用,我们的飞机项目,然后呢,这个调者呢,决定飞机项目呢,由西厂来搞,那怎么办呢?调度者也不是直接说把这个飞机项目全部搬到西厂,所以呢,调度者把他所有调度的信息也是通知秘书部,当然他的这些调度信息呢,其实他说哪个厂来搞,最终也要存到资料库,对吧,我们相当于入党一下嘛,然后呢,接下来由秘书部,大家会看到东厂、西厂、南厂他们的线是直接连到秘书部的,然后呢,我们硅谷集团的总部,你每一个厂呢?什么任何无关人员,你是找不到我的决策者呢,我的决策者对你是隐藏的你。
07:00
有事找我,你就给我的秘书部打电话,所以呢,接下来我们的这个飞机项目最终由秘书部负责通知由哪个厂来工作,但这个秘书部是怎么通知呢?其实是秘书部跟每一个厂的这个厂长,每一个厂得有一个厂长,这个厂长呢叫CU,所以呢,接下来再来看一下啊,哎,Etcd呢,这是我们的资料库好,我们整个集团的资料库资料库资料库好,然后呢,接下来这就是我们每一个分厂的厂长,每个厂的厂长厂长好,那接下来呢,我们秘书部说,呃,最终呢,我们的调度者,最终根据每一个厂的情况,哎,我算了一下,我突然发现西厂适合搞这个,然后呢,就由秘书部通知西厂的厂长好,这是。
08:00
B厂的厂长,所以呢,我们这个厂长有很多,对吧,每一个厂都有他的厂长,厂长呢其实就是来监控我们整个厂的运行情况的,所以呢,我们K8S里边库ber ne就是这样,它是来监控它当前节点的所有情况,包括来控制当前节点,当前节点呢要搞哪些项目,不搞哪些项目,所以由这当前节点的厂长,我们也称为就是这个啊,我们秘书部呢,我们称为APS,所以呢,以后由秘书部通知我们这个厂长,西厂你要搞项目了,好,那我们西厂就搞这个项目,就放到这,所以这是我们说的这几个,然后呢,还有一个东西叫cooper proxy,这是什么?这叫proxy,我们听来听去这就是叫代理,代理是什么呢?比如我们现在突然有一个领导,对吧,我们这个领导人想要视察我们的飞机项目了,但是领导人呢,怎么知道飞机项目在哪个地方,我去看呢?在哪个流水线呢,我想要看。
09:00
所以呢,家领导人想要视察这些厂的飞机项目,那就就问这个Co proxy飞机项目在哪,Co proxy告诉你飞机项目在哪,这个特别像什么每一个厂厂的这个咱们的开门打野对吧,我们厂的这个啊门卫打,这就相当于我们这个门卫打,他呢就是负责,哎他们他呢很清楚我们这个厂里边都有哪些设置,谁想要访问,比如我们这个领导呢,先跑到东厂,他来到东厂呢,他说我想要,呃,看你们东厂的这个,呃,飞机项目,那门卫大爷就会告诉这个领导,呃,没有,我们东厂没有飞机项目,对吧?飞机项目是西厂搞的,所以呢,接下来cooper proxy就是这些门卫大爷他们很八卦,所以呢,他们之间呢,是经常保持同步的,什么叫同步,就是我集群里边到底有搞了哪些项目,对吧,我们我们这个。
10:00
节点里边呢,到底有哪些玩意儿,门卫大爷也都知道,我们集群里边有哪些项目,门卫大爷呢都知道,门卫大爷之间呢是互相同步的,所以呢,即使领导人走错了,来到了东厂,然后呢问给东厂门卫大爷说我想要看一下你们的飞机项,门卫大爷就说你去西厂吧,然后呢,我们这个领导人呢,就会被门卫大爷引导去西厂去来参观我们的飞机项目,那至此呢,我们的这些组件之间的关系,那就是这么大大概的一个流程,那我们最后呢,由一个动画再来看一下,我们集群里边想真正要部署一个项目,这就是我们搞一个项目,我们这个项目呢,最终会是以怎样的形式,最终落脚到集群,我们后来再说,然后呢,中途这这还有一个叫可cloud的controller manager尼迪可这叫云对吧,云决策者,什么叫云决决策者就是呢,我们决策要不要跟外边的厂商进行合作,嗯,对吧。
11:00
就相当于我们的外联部,外联外联部对吧,我们的要跟我们的云厂商,我们的,我们说什么是云啊,不是我们硅谷集团的,我们对接外部的,那这就叫云,所以呢,我们跟外部该怎么合作,由外联部来负责来进行合作,所以呢,这就是我们整个硅谷集团它是怎么工作的,就是这样。
我来说两句