00:00
大家好,欢迎来到秋叶堂,前面我们学习了那么久的docker,不知道大家想过一些问题没有,比如说如果一台机子上的容器太多了,或者是你有多个机器的多个容器,你应该怎么去管理这些容器呢?然后容器之间如何去实现它的多主机通讯呢?是否是经过DNS直接访问就可以了呢?答案是不一定的,大家也有考虑过,如果容器做一个集群或者是一个扩展的话,应该怎么去呃,程序应该怎么去调度呢?其实这时候我们就需要一些容器编排工具来帮助我们进行这种集群的操作,比如说呃呃官do官网的do SW,或者是谷歌的,或者是我记得好像是IBM的methods也这种容器编排工具,我们今天要讲的呢,就是官方的自研的一个容器变排工具do SW说了它是官方的,也就是说它会最大程度上友好的去操作,多去调度,这就是dog swm的一个logo啊,上面有多条金鱼,存在着多个容器。
01:23
好,我们现在来介绍一下多SW的一个架构,大家可以看到这里有一个SW manager,也就是管理者。下面有多多个node,这个manager就是负责进行node的调度管理,这个store呢,就是负责存储这个swarm manager的一个状态,好,我们可以看这张图就能理解了,这是dog swm的一个集群的一个架构啊,这个图是直接从网上拿过来的,比如说我们看到这里有多个manager,多个worker啊,Manager之间是通过这个rap的呃算法进行一致性同步的rap的这个呃一致性算法呢,在呃这个构语言中有很大的那个呃呃一个利用范围在这里呢,主要是解决这些manager产生一个分歧的一个问题。
02:26
嗯,我们看一下服务之间是如何调度的,Do SW提供了一个这个service,这是一它的一个很重要的一个概念和relic副本。比如说这里横向扩展了三个N,这些NX分别运行在这些可用的这些子节点上面,程序访问通过SW manager去调度这些容器,它中间是通过in increasece负载均衡到这三个节点上。
03:01
当然,这三个节点必须是一个可用的状态,如果说不可用的话,那么small manager也会保证这个呃,NG的副本是三个,比如说NOTE2上面就有两个N,呃,Not,呃,NOTE3上面没有。NOTE1上面有一个这里呃运行的是三个副本,那么它就会保证你的容器,呃是三个啊,不管你的那子节点能不能用,如果不能用的话,它就会放到可用的一个节点,或者是放到自己呃manager上面,Manager也是可以工作的,实际上呢,它是会均匀的分布在每一台机机器上的,Swarm manager呢,能帮我们进行呃动态啊吧,动态的水平扩展,比如说你现在三个,然后等一下变成五个,那么它就是五个容器跑在这个呃机器上这个水平扩展呢,SW manager还可以实现这个容器的物滚动升级,什么叫容器的服务滚动升级,就是在容机不停机的情况下啊,这个我manager会让这些,比如说。
04:19
好,现在是N1版本,然后它会让嗯这些NG1变成呃下一个版本,比如说N2,然后这样一一直不停的更新它的副本书,然后它的所有副本容器都更新成二版本,简单的讲了一下服务间的调度和管理水平扩展啊那我们就来讲一下它是如何去实现这个的,这个多机通信,实际上呢,在do SW初始化的时候,会给呃数主机创建一个默认的ola网络,Ola网络就是实现多主机通信的,比如说我现在这里有两台机I'm sorry,啊,第一台,第二台容器通过自身呢,把自己的呃连到这个对应的用户自定义网络,再呃将用户自定义网络连接到这个O类网络这个。
05:19
Overlay网络呢,就通过VVXLA直接连接到另一台呃机器的overla网络这个VXLA上面,然后这两个容器就可以实现通讯,但是呢,O类网络是具有一定的网络消耗的,它的性能呢,并没有说像呃容容器直接连接到bridge或者host这么好的一个性能,因为连接到host基本上网络是没有消耗的,但是如果你用ola这个网络的话,那么它的消耗是一至少是减一半的,呃,在ola这个网络的话,是可以用思科的一个colleague啊这个来解决的,它的网络性能是比bridge还要好的。嗯,这节课就简单的讲一下多ER的SW的一个架构和它的一个通讯原理,好,这节课就到这里,谢谢大家。
我来说两句