00:00
好,那理解上一节课我们硅谷集团的架构图以后,那接下来就以一个动画的方式看他们之间怎么交互,另外呢,上一节课需要注意的就是,无论我们是东厂西厂还是什么,还是我们,甚至于我们硅谷总部所有这些不同角色之间的交互,大家看啊,他们之间没有画互相的箭头,都是找谁秘书部,所以呢,就是谁要找领导,你调度者要找领导也是找秘书部,东厂西厂啊,找调度者甚至找领领导都是给秘书部打电话,所以我们这个秘书部呢,相当于是你去总部访问的唯一入口,那另外一个就是如果你要去访问我们东厂西厂的这些啊各种项目,你的所有访问入口是谁?是门卫大爷,对,你从这个门卫这儿进来以后呢,将来门卫大爷会告诉你,甚至于你去找一个人,对吧,门卫大爷告诉你他在什么宿舍,什么宿舍,那你就进去找,所以这门卫大爷是控制我们所有集群里边网络访问的,那落脚到。
01:00
群它是控制网络访问的,你想访问哪个东西,它在哪,王维达也告诉你,然后呢,AP server是控制我们集群之间交互访问的,比如说无论我们集群的worker节点还是master节点之间的这些组件要互相交互,都是通过APS server,这个呢,其实就是我们说的一个外观模式,蒙面模式,API server隐藏了我们真正的硅谷集团的这些核心首脑领导人,别人呢,只需要给秘书打电话,对吧,你也不知道领导人的电话,然后呢,秘书在通知领导人,领导人的决策呢,秘书在通知你,就是这么一个事儿啊。然后呢,我们来看一下这个动画,假设呢,我们现在有三台机器,对吧?我们模拟我们硅谷集团三台机器,机器呢就有我们的东厂西厂,这是两个工作节点,我们称为worknode,还有我们的主节点就是我们硅谷的总部masternode,然后呢,比如我们想要呃搞一些项目,我们这个项目一,项目二,我们也叫应用一,应用二,这是我们的应用一。
02:00
比如在两个厂呢都做对吧,那肯定肯定一个厂,比如我们现在是造车,一个厂造车的,呃,这个车辆每个月造个100辆,这个不够卖,我让两个厂都走,所以呢,这样我们可以应用呢,可以部署到多台我们的工作机器,当然你想部署应用呢,应用也可以让总部来搞,但是我们说一般总部不去部署我们自己的应用,我们说一般不去部署不代表不能部署也能,对吧,比如我们硅谷的总部,哎,他也有线下班,然后呢,再来接下来我们现在的这个应用三,比如我应用三呢,也可以让这这两个机器来搞,也就是说我们以后呢,想要搞什么项目,我们就让我们集群里边的这些机器来搞,我们的各种分厂来搞,甚至于总部来搞,那这些项目是怎么搞起来的呢?然后这些项目其实要真正的运行起来,需要因为我们这个应用有了doer以后,我们都是以容器化运行的,所以呢,我们相当于这些项目都必须你所在的这些机器有容器化的运行环境。
03:00
如我们称为容器的运行式环境,也就是说你只要给每一台机器装了docker就行,那装了docker呢,或者其他容器运行式环境也行,只要有容器运行式环境,那么这些应用呢,就能运行在你的机器,那他们怎么应用呢?我们来看一下啊,接下来呢,就是每一个厂,甚至于我总部都得有一个厂长,叫cooper late cooper late cooper late就说呢,我们到底要不要搞什么项目,厂长是可以让这个项目启动停止,启动停止对吧?我们总部说你这个厂呢要搞项目,然后呢,厂长启动这个项目,当然呢,这个项目运行一半呢有问题,厂长也可以有决策权把这个项目停了,所以呢,我们的这个应用以应用二为例,是由每一个应用都是由它当前所在机器节点的cooperber ne,由这个厂长来负责应用的启停以及销毁等各种,比如我们这个应用二呢,是搞飞机项目,然后呢,这个飞机项目呢,厂长控制可以让飞机项目启动啊,飞机项目开始运行了,我们开始。
04:00
造飞机了,但是呢,突然我们这个飞机项目呢,比如某一天出现故障了,那咋办?厂长呢,就可以把这个飞机项目呢给他停了,而且呢,厂长呢,也能随时的去来探测到我们这个飞机项目,对不对?厂长没事去视察一下流水线对吧?看流水线的这个飞机项目还正常运行的,如果某一天厂长发现我们这个飞机项目啊,他已经不能正正常工作了,我们这个厂实在没法造飞机了,怎么办?厂长呢,就会汇报给总部,先打电话给秘书,哎,就是我们说的apo说不行,我厂的这个飞机项目搞不定了,然后呢,秘书部呢,就会通知我们的决策者说,诶,这个东厂的这个飞机项目搞不定了,咋办啊?决策者说好,那把这个飞机项目呢,让东厂别搞了,让其他厂来搞,那我们的这个决策者当然有两种决策,第一个是这个项目纯粹不搞了,第二个呢,是这个项目让别的厂来搞,所以呢,决策者只需要说我这个项目呢,让别的厂来搞。决策者把。
05:00
此次的决策存到,哎,由秘书存到资料库,然后呢,秘书在通知我们的调度者说哎,刚才我们这个领导人说让别的厂再去来搞这个什么叫飞机项目,所以我们的这个schedule了,决策者呢,就会动态的计算一下,看我们这些东厂西厂到底哪个厂能搞这些项目,如果能搞以后呢,他把他的此次决策,我们的决策啊,公司有重重大通知啦,变变动啦,是不是就得有决策文件,他把他的决策文件也会存到这个数据库啊,我们称为etcd,也就是我们资料库,当我们此次决策完成以后,然后呢,我们的这个秘书APSSO就会来通知我们的,就是呢,因为我们这个角色其实倒不是通知是cooper,我们的这些厂长,他他们呢,每天都跟我们的这个秘书通电话,对吧,然后呢,今天一打电话,然后秘书说,哎,告诉你一个好消息,然后呢,飞机项目要在你们厂搞了,呃,那个东厂搞不了。
06:00
到了,然后西厂厂长呢,先收跟秘收打了一通电话以后,知道他要搞我们的这个飞机项目了,那西厂好厂长就来启动我们的这个飞机项目,飞机项目呢就可以正常运行,然后西厂厂长呢,同样来监控他的整个飞机项目的进度,包括呢,飞机项目有没有问题,如果有问题要每天要及时跟我们的秘书通电话,方便我们秘书呢告诉决策者,所以这就是我们整个流程,那这个流程呢,最终我们这个项目如果搞起来,那别人要访问怎么办?就由我们的cooper proxy cooper proxy呢是负责我们所有应用的访问,比如我们举一个例子,现在这个应用一想要访问应用三,那么我们这个应用三呢,相当于我们的某一个领导啊,比如这就是我们本厂,我们东厂的这个,呃,汽车部想要参观我们搞飞机的项目部的这个,呃,这些流水线,那他怎么参观,他就得知。
07:00
那这飞机项目在哪些场有,我们应用三呢,就是飞机项目对吧?那飞机项目呢,我们会看到在这个东厂西厂都有,所以呢,他想要去访问,其实先要问这个门卫大爷,所以呢,他整个人呢,想要访问应用三,他问门卫大爷,我们这个应用三在我们厂哪儿有,然后呢,门卫大爷说好,我们这个应用三飞机项目在我们东厂也有,西厂也有,你想参观哪个,哎,因为一说哎我不想看我们厂的啊,那个飞机项目太low了啊,我可以去看看参观一下西厂的这个应用三,所以呢,门卫大爷就会告诉他西厂的应用三地址在哪,所以你想要访问呢,接下来我们这个应用呢,就会直接拿着西厂的地址去要到西厂的应用三,那我们就现在能访问的通了,所以门卫大爷呢,是来给我们相当于打通整个网络访问的,对吧?你谁想要访问,谁去哪访问,就问我们这些萌问答答你问随便一台机器他们都知道,因为我们之前说了。
08:00
门卫大爷是互相是不是互相同步的,就是因为你每一个厂进出了多少人,门卫大爷,哎,你搬家门卫大爷都知道,你都要过门卫那一关,那知道了以后呢,接下来你比如想要访问,那门卫就可以告诉你,哎,我们你要问的这个东西,咱们东厂没有,但是我知道,哎,西厂的那个老大爷跟我打了电话,啊,我知道西厂有,你就去哪访问,好,那这就是我们说的整个库proxy是来是来决定我们这些应用去哪访问的,现在这是一个负载均衡的一个实现的源头,然后呢,接下来大家看好啊,我们这个结束了以后,我们的整个集团架构就真的完了吗?其实你会发现我们K8S集群呢,我们的这个总部其实是一个傀儡,怎么是一个傀儡,就是真正我们决定搞飞机项目还是搞火车项目,是我们程序员决定的,所以呢,我们会未来敲一行命令,比如这。
09:00
它命令叫huber controller create deploy my APP以S镜像啊启动一个应用,相当于呢,我告诉K8S集群,接下来我创建一个deploy,是不是创建一次部署啊,下来你给我部署一个应用,这个应用呢,就以镜像呃为标准给我部署,现在我们要搞飞机项目嘛,把飞机项目的这些图纸信息都拿来,这镜像就跟我们刀客启动容器一样,拿到镜像就能启动好那家K8S集群,包括我们程序员要跟K8S集群交互,我们也是把这个命令发给秘书部,秘书部呢再来告诉什么,是不是告诉我们的整个决策者,所以呢,其实这个决策者我们这是干嘛呢,挟天子以定诸侯呢,对吧,真正的真正我们应用部署是我们在这儿,我们说要部署一个什么,然后呢,接下来这个天子呢,按照我们的要求发号施令,然后呢,他的秘书部通知我们其他人,你给我干这个活儿,所以呢,这就是我们K8S。
10:00
整个集群架构,当然这个架构呢,大家现在先感觉上这么几点,第一点集群里边所有组件的交互都是通过什么?A,你看每一个组件都是连的AP,二来打电话交互的,咱不不包含我们应用啊,然后呢,这是我们的APSO就是它的核心组件。第二个集群里边的网络访问都是通过Co proxy来进行访问的。第三个集群里边我们要运行的所有应用程序都得有一个运行式环境,所以呢,你就给集群里边得装一个容器的这个运行式环境doer啦,或者其他运行式环境都行。第四个每一个集群里边每一个机器节点都得有一个,这个相当于监工,就是我们的厂长,厂长呢负责来监控我们整个这个节点里面所有部署的应应用,看他们活着了还是死了,对吧,然后呢,及时给我们决策层汇报,整个我们集群。
11:00
的状态信息,决策,从有了这个状态信息呢,他们就开始调度啦,决策啦,去来干这些事,所以这是我们K8S集群的所有架构。
我来说两句