00:00
大家好,欢迎大家继续收看上硅谷的Linux云计算视频,我是万瑶老师。那我们已经陪伴了大家很久了,对吧,那对于K8S集群呢,相信大家已经有了自己的见解,好,但是我们还有一个问题是没有解决的,也就是我们集群的可用性。所有的node节点呢,都会被我们的ma主件内所监控,Node节点一键一旦出现所谓的损坏以后,它会进行离线处理,对吧?那在我们的masss端呢,你会发现它是一个no re的状态,这时候呢,它的pod我们就可以把它给驱离了,好,那这是node节点是没有问题的,那如果有一天我们的MAS节点死亡怎么办?就像我们现在看到的集群结构一样。这是我们的MAS节点,Node节点。Note节点就是我们现在构建了K8S集群,对吧?他俩任何一个死亡都不会造成我们的服务中断,但如果MAS节点死亡以后,那这可就是真的死了,对吧?所以我们如果想构建一个我们的真正高可用的K8S集群,或叫真正能够在生产环境中使用的K8集群,高可用肯定是必须要去实现的一种方案。
01:13
对吧,好,那接下来呢,大家去给我们的K8S的原理去讲解一下,对吧,怎么去实现它的高可用。好,首先我们知道我如果每一个节点上呢,比如我们的一个MAS节点。它会有这么几个组件,一个是我们的IPSO。有点大,等会不好放,我们要放三个呢。好。另一个是我们的。丢了我们先天control energy吧。
02:05
好,Control。那下一个呢,是我们的steer调度服务。好,以及我们的light。和proceed。首先IPSSO呢是所有的服务的总入口,对吧,这个我们肯定是没有问题的ctrl manage呢是我们的控制器still了调度服务库,Light维持我们的容器的生命周期,跟我们的cri去运行去交互,对吧?Pro去实现我们的负载的方案。好,那当然在这里呢,还有一个东西叫做我们ETC的存储。
03:06
Edcd的存储,那在我们的默认的K8S集群中的edcd的存储是放在我们的K8S集群那边托管的,那还有一种方案,就是把在集群内外部或者叫其他的节点服务器去构建e dcd集群,然后呢,我们的K8S连接过去也是没有问题的。好,那我们比较常见的方案都是放在集群内部,它默认也是这样去做的,对吧。也就意味着,如果我们想实现高可用的话,那IP高可用必须高可用,Etcd必须高可用,Controltr manage必须高可用。丢了高可用。Light和我们的pro呢,它是工作在每个节点之上去运行的,节点死亡以后,他们只会工作在当前节点,对吧,去完成任务,所以他们是不需要高可用的,那这几个节点的高可用的,在我们的CUIDM发展至1.15版本以后,它的实现方案就不一致了,对于IPO来说。
04:03
他如果我们同时有三个。不同的IPS存在的话,并不会影响我们的集群访问,能理解我意思吗?它没有一个竞争关系,就是他去跟e dcd去实现沟通,处理对应的事物即可,也就意味着他们三个是可以同时存在的。好,那对于edcd来说。在1.15版本以后呢,如果我们指定是多主集群的话,那多台主服务器在加入至我们的主主集群内部以后,Etcd会实现一个集群化的扩展,也就意味着如果我们放在集群内部的etcd,它会自动的满足成为我们的etcd的高可用集群。好,那CTR manager呢,和我们的S丢了以及ste了,它两个呢,会出现一个叫做。给大家先画好哈。会出现一个叫做休眠的状态。
05:03
什么含义呢?就是我们三个。哎,如果我们去构建一个多组集群的话,通知为K8S构建一个多组集群的话,他们三个里面只会有一个正常工作,其他两个会处于一个挂等待。能理解我的意思吗?好,那对于我们的ste来说也是同样的,也是同样的处于一个挂起状态,也就意味着对于集群,对于K8S集群来说。他已经。八。这一部分内容都给我们解决掉了。对吧,这一部分的内容给我们解决掉了,那我们可以把这个图给简单画一下。还是插入一个文本去写吧。
06:17
好,那这一部分内容呢,我们还没有官方还没有明确的解决方案,但是已经非常非常容易,根据我们之前学习的即兴意识已经非常容易了,那既然他们是一个类似于web服务器,对吧?那这它是不是就是for封层的编程接口啊,对吧?那既然是采用的是IP协议,那我能不能实现一个四层或七层的代理,我在前面加一个负载调度器。那在这里呢,我们会组成一个VIP对吧,也就是我们的虚拟IP或者集训IP都可以,那用VIP也就用代理的方式去分发三个ipi的请求,比如这里是N尼克斯。
07:01
然后呢,我的后端三个节点写IP,这上台的IP访问地址信息。那这样的话,把他们所有的请求。就在这里的所有请求。不交给这里的IPS网。而是交给赤。我们这里的恩。能听明白我的意思吗?集群里的请求不交给自各自节点的。不交给这各自节点的这么一个,呃,IPS上,而是交到N这个上,然后N这个实现反向代理。反向代理是三个节点。那这样的话是不是就可以了,任何一个节点的死亡,恩,你是会把它排除出去。
08:04
排除完毕以后呢,从这两个IPSO去负载均衡。没有问题。并且其实最好的方案是在每一个。Ipi,就是每一个我们的项目上去部署一个恩ingx,因为这个恩尼X是要在别的节点部署,还是消耗资源的,对吧?那我就每一个都部署一个恩尼斯,然后呢,他们之间通过我们的keep live。或者还在beat都可以,对吧,通过我们的k live选出了一个VIP,然后呢,在这里集群去连接我们这里的VIP,同样可以去实现。能听懂我的意思吗?并且剩下的集训一解决了这里的问题里三个节点对吧?任意的一个三个节点,任何一个出现意外以后,都对另两个不会造成影响,比如他死了,原来他是主,他死了,那他俩都会从主赛状态里退出,退出有一个退出组织状态进行接替任务。
09:04
对吧,并且集群里面知道现在工作的是谁。这是我们的K8自己解决的,需要注意一下,那就意味着对于IPSO的高可用解决方案来说,我们就可以通过我们这种负载。均衡加上我们的高频软件去实现。那在这里呢,在我们国内呢,有一个叫做。叫做我想一下叫做瑞云。看下是瑞云吗?好,我们看一下瑞云好。K8S对于瑞云来说呢,它呢,这个安装K8S的这么一种工具呢,叫bree z,它是基于我们的酷IDM去实现的,并且它通过。
10:03
Pro和keep live去实现了高回用,也就是我们这里说的IP的这么一个高回用。并且他把这两个东西以镜像的方式封装起来了,那我们就偷个懒,直接去用他的哈的这么一个镜像去实现这里的。代理。以及它的keep live的方案,就是加live方案去实现这里的VIP,那这样的话我们再把集群的访问地址指向到我们的har process之上即可完成。对吧,好,那接下来呢,我们就把这么一个高可用的K8集群给大家构建一下。我们去还原机器。初始化。初始化。
11:00
说实话。好,我们去开启。那第一步呢,依然是我们的一些初始化的操作,对吧,这肯定是离不开的,好我们稍微等一下。好抖,已经打开了。我们去连接一下。
12:22
好,一步一步来,首先呢,这里的IP肯定是设置成功的,那我们去看一下防火墙。一点一点去确定,我们看一下我们的IPS。好,我们去看一下我们的IC6X,应该都是没有问题的,一台一台看,别心急哈。这里的初始化之前是不在我们的最基础的GP安装的时候带大家从头到尾做过,对吧,那这里我保存的快照依然是之前我给大家做的那么一个快照。
13:01
自己没有重新去做哈,跟着我们之前的实验,到这一步即可。都没问题对吧?好,那我们先第一步,我们去修改我们当前的主机名。我就在这里直接复制了,我就不收枪了哈,稍微快一点。这面是我们的NOD01。那零二。那这样的话呢,我们去安装一下我们的一些依赖包,每一个节点都需要安装。并且去写一下我们的house的文件,对吧?好,ETC下的house。1921686610是K8SMA011921686602啊20K8S的MASTER02名字写错了对吧?我们现在构建的是三个主服务器的高可用集群。
14:06
所以呢,我们就都给它改成must吧,MA03。好。那再加一个高可用的,我们就用100的IP吧,K8S的。BAS。重新设一下主机名。Must lay up。MASTER03,好,然后我们把这个host文件呢传递到各个机器节点,对吧,Root。K8S02的ETC下的house。好,以及MA03的。
15:02
都没有问题对吧?那我们可以去测试一下PINK8SMA01做一步测一下,这个一定不能急,K8SMA01都能通,对吧?好,那接下来我们继续往后看,关闭我们的swap对吧?关闭我们的swap。交换分区。好,然后呢,去调整我们的内核参数,这之前都给大家说过了,我们就直接去生成了哈。
我来说两句