00:00
那前边我们使用docker的方式给大家模拟了我们各种集群,但如果在我们的cooperer notice里边,我们该如何部署这些我们称为有状态的服务?我们可以先来看一下我们这张原理图务,我们这个想在cooper notice里边部署有状态的服务,也就是说我们的这个服务一旦一个机器出问题,我们在别的机器拉起以后,他还用用到以前的这个数据,像my circleq red等等,我要用的这些都是一个有状态服务,那他想要部署呢?我们可以来遵循这个原则,如果按照这种方式来部署,无论是mys RA其他的所有东西,它的流程方式都是一模一样的。那么现在来看,如何在我们的Co里边部署一个MYQL,它是一个有状态服务的MYS,那我们现在首先来了解第一个概念,叫con飞map,叫配置。我们以前要部署MYS,即使是我们用docker,我们把MYSQ的配置文件我们都挂载到外边,但如果在我们cuer notice里边,它专门呢有一个东西叫con菲map,就是我们可以将一些常用的所有配置,比如我们来进古励商城里边把它呢抽取出来,就做成我们这一种配置来点一个创建配置,我们可以给它写一个配置的名,然后值,我们专门把它呢抽取出来,这样的话呢,我们后来所有的这些应用程序,我们都可以从我们指定的这些配置文件中读取我们的这些配置变量信息,通过我们的conig map,我们可以让每一个MYS相当于把他们以前的config my config文件,我们都能给它抽取出来,用我们自己的这个config map里边的内容。所以第一个就是每一个我们有状态服务的配置,我们可以抽取放在con map里边,这样以后我们改配置,改con map就行了。但在。
01:55
接下来那我们每一个服务,它自己的这个数据要放在哪呢?我们还是一样,我们每部署一个MYSQL,都有它对应的自己的一个PVC,这个PVC来保存马SQ,这个马S扣自己的数据,这个马SQ宕机,在别的机器拉起以后,PVC还在。
02:14
包括我们的这一块数据还在,我们呢就不会出现我们这个服务的数据丢失的问题,那其他我们现在呢,有三个MYSQL,如果我们部署三个MYSQ集群,这是一个主从复制,我们能看到这个马SQ是一个主,然后这两个呢是一个从而主码SQL呢,它的配置读取来自我们的这个康菲哥map,从满circle,它的配置读取来自于我们的这个康菲哥map,所以我们现在呢,看到了我们的这个康菲哥map,然后再接下来每一个马S自己的存储数据,使用PVC给它来自己来申请我们的这个存储空间来进行数据存储,然后呢,每一个马S再来它来配置,我们来复制同步它,来复制同步它,那问题就在于我们现在的每一个MYS,它呢应该是一个称为有状态服务,这有状态服务呢,而且MYSQ跟MYSQL之间,他们还是要访问的通,然后我们的这个从数据库那同步主数据库里边的数据,那如何访。
03:15
能得通我们这个有状态服务,我们就可以给他暴露一个我们的headless service,就是我们有状态服务的这种service service就是我们集群之间,我们来进行互相访问,我们说最小的部署单元是一个pod,其实我们这个MYS0,比如呢,它就是一个pod,但我们把这个pod包装成一个service,但这个service呢,我们可以让集群为它生成一个我们的域名,诶我们DNS默认给它提供一个稳定域名,比如我们这个马SQ0 DNS给他提供一个叫马SQ0,默认呢就是这个pod的名字,加上我们现在所在的这个项目名,比如古力ma,那现在呢,我们相当于给他提供了一个稳定的域名,其他的port我包装成service以后也提供一个稳定的域名,那么就可以通过域名之间来互相访问,这样我们的有状态服务,我们的DNS能提供一个非常稳定的这个域名,而不是给你提供一个IP到底放到到哪个。
04:15
机器里边了,我们就提供一个稳定域名,然后我们集群内的所有应用,包括他们自己想要访问呢,都可以使用这种稳定域名的方式,所以我们后来有状态服务的部署,都是我们可以遵循这个原理,配置放到con菲map里边,Con菲map呢,在我们库fair里边,我们直接就是对应的这一块的内容,这一块的配置,配置呢就是我们说的配置及con菲map,我们相当于是来创建它,如果没有我们这个库fair可视化界面,我们的con map其实就应该是这样子的,我们点一个编辑模式,我们相当于给Co ne里边创建一个我们这个压面,这个资源类型呢是con菲哥map,然后我们把我们真正内容写完了以后,我们可以写一用我们的库包controlrler,然后比如库艾杠F们将这个文件里边的内容创建出来,这是我们以前命令行的方式,但有了我们现在可视化界面就方便多了,我们现在的这个配置我们现在能创建了,然后呢,PVC现在也能创建了,PVC的创建在存储券里边。
05:15
我们想要用存储,我们就必须得创建一个这个PVC,我们看这个编辑模式,它呢是一个PVC,没问题,Persistent volume claim,好,所以我们接下来想要来部署这些有状态服务,就得结合我们的配置中心con、菲格mapmp,还有我们的这个PVC,我们将服务的这些数据先持久化存储来以及它的配置,然后我们再来配置我们服务的这个po的容器,再把它暴露成我们域名可访问的service就行了。那下一节课开始,我们就直接来将我们的各个应用,就是我们的my red等等,我们全部的部署到我们的cooper里边。
我来说两句