00:00
好,接下来我们再来部署一个,同样的,我们还是先来找到red的官方镜像。按照我们这个red官方镜像的描述,我们再来决定我们的启动命令。一般在red官方镜像里边我们会看到这些,比如我们想要启动red。想持久化存储的话呢,可以加这个参数,但一般我们也会抽取一个red的配置文件,而且red的数据目录,比如看它这一块叫杠data,所以呢,通过这些关键字我们能知道red如果要持久化存储默认数据呢,是在杠data在这一块,所以我们的这张图那就是这个样子,我准备一个red的pod,这red呢,首先它的数据目录是杠data,那我们想要部署啊,按照我们之前的这个方式,我就可以在这儿。先准备一个什么,是不是red的这个券,当然我可以在这儿呢,这次部署我不先准备卷,我让他下一次呢自己创建给我们加上把这个退出来重新登录一下。
01:08
好,我重新进来继续部署啊,我先不准备这个卷,然后呢,接下来我要做的是我们的这个red来是还是来看官方镜像red的券呢,在这儿,但是呢,Red如果要自定义抽取配置文件,Red的启动命令就变了。比如我们docker呢,以前在这按照red镜像启动,加了自定义的启动命令来指定自己red配置文件的位置,所以呢,最终根据官方镜像的描述,我给大家抽取出了red呢,应该是这样子的,如果我们拿docker启动red,那就这样,Docker run我来启动一个red,然后呢,我们的red配置文件在这个位置,但是这个配置文件如果我们是docker的话,也得提前准备好,有一个位置配置文件的内容呢,假设是它,然后呢,映射到我们主机的这个路径,然后接下来呢,RA的数据目录。
02:02
找一下red的数据目录,数据目录呢是杠data,杠data呢来到这我们是在外部进行挂载,当然这以前呢都是docker的方式,外部呢得有这些文件夹啥的,然后呢,接下来我们主要呢,在这red的启动呀,它的核心在于我们这个red会有一个自定义的启动命令,我们就看这种情况下我们如何来配置,最终呢,那就是这样,我们的red的一个pod,我们的配置文件,我们还是提前先做好,既然有配置文件,我们也这么来一做,把这一块呢我来复制一下。这是配置文件的内容,我我们提前在这一块呢,创建一个在它的配置这一块来创建一个叫red conflict。我就是red的配置,我们把red配置呢,接下来我们添加一对KVK呢叫文件名red.configv呢就是我们的值,这一堆我们配的工作端口,Red呢所有人都可访问on yes,也就是说red呢做持久化存储。
03:10
我点一个创建,那么red的配置呢,我就提前准备好了,然后red呢,我们启动的时候还要它的数据也要挂载到外边,本来应该是提前创建这个券,我现在不创建了,然后呢,额外。特殊的就是red有一个自定义的启动命令,Red服务器自己呢,启动的时候加载它ETC下的这个配置文件的值,而当然这个配置文件呢,我们抽取出来了,如果我们挂载好的话,它自动会把配置文件的这个K,我们com map里边的这个K,然后呢,作为文件名放到这个路径下边,内容呢,那就是我们配的这个内容。好,那我现在呢就来部署。还是在我们应用负载里边工作负载呢,是有状态副本集,我点一个创建,比如我们就叫his的red。
04:01
Red来点击下一步,首先呢选择镜像,那red的镜像呢,来选一个这个镜像,我就用最新版法就直接来写一个red。回车。我们让他搜到我们的最新镜像。啊,适当它使用默认端口啊,这一块呢,都不用配资源限制呢,我可以给上呢,最大比如占用一盒,然后呢,呃,最多呢,占用一个G的数据,对我们在测试期间了,如果在我们的生产环境,那red呢,可能会有独立服务器,甚至于呢,你在这扩我们更大的这个内存量,然后我们这个red呢,这一块都配好了,Red呢没有什么环境变量,但是red有启动命令,所以我们在启动命令里边,启动命令里边呢,我们现在是自定义的启动命令,我们服务器,我们red镜像一启动以后运行我们red server,并且我们启动命令后边呢,都是参数,并且会加载我们指定位置的。
05:04
这个文件,所以我启动命令里边,命令在这儿,参数在这儿,我来写上,然后呢,每一个容器我们都勾上同步主机视区来点击确定,然后我来点击下一步,下一步接下来。如果我们以前已经创建好了存储卷,我们可以点这,因为我们red的数据要挂载出去,没创建好,你也可以点上边叫存储卷模板,让他呢自己整一个存储卷,点一个上边存储卷的名称不能随便写就叫red PVC,然后呢,接下来我们red的数据,比如我们给他两个G,然后数据的挂载,我们以读写的方式挂载到容器内部的杠贝塔。这都是我们之前约定的事情,好,那么这一块呢,我就配置好了,我点一个对号,那red的数据现在就有处挂载了,然后呢,Red的配置文件也一样,我点击挂载配置文件,在这选择我们red的配置文件,挂载呢,我们来选择只读挂载,挂载到我们指定的位置是我们ETC red这个目录下,相当于容器内部有一个ETC这个目录。
06:11
所以我们只需要写到目录级别,接下来呢,我可以让他自己对吧,因为我写到目录级别在con里边,他自己呢,我们之前配了一个KK叫点旁这,所以呢,它会把这个里边的这个K会自动放到这个目录下边,而且文件名,这个K名就是文件名,现在最终是不是就是形成了,是不是这么一段的东西啊,所以呢,我们在这呢就准备好了,然后我再来点一个对号,我点击下一步,下一步呢,剩下的这一块呢,也不用做,继续来点击下一步。来创建出我们的这个。来稍等一下,看一下red容器正在创建中,来等一阵。好,大概呢,等了一分钟,我们这个red呢就创建好了,包括我们来看日志这一块呢,都是没有任何问题的,以及red的配置文件,我们也可以确认一下,我们进到red容器里边,那CD到ETC,我们之前约定的目录,这个red目录有一个red这个呢肯定就是我们自己配的。
07:15
好,我们配的这三行内容都没问题,所以们red呢,就在这启动好了,包括我们这个red启动了以后,它默认也会给我们创建一个red的服务,只是集群内能访问的,同样我把这个服务呢,我想它这有这些后缀名,我不喜欢看这些后缀名,我可以删了。我们呢,自己再来创一下,如果想要集群内访问,我点一个创建我们指定工作负载,我们呢,比如就叫his credit,呃,我们来看一下,其他都叫his my so his什么好,那我们就叫his。这是我们的red的网络,这是我们red的负载均衡网络,然后呢,我们现在集群内访问的话,使用这个集群不不生成服务IP的方式,然后呢,我们来指定有状态副本集来指定我们的red,点击确定red的工作端口是6379。
08:11
所以呢,容器端口那就是6379,我们的服务的6379连到我们容器的6379啊,我就这么一写,点击下一步你用集群内访问,所以不用外网访问,点击创建。我们集群内的这个ready就有了,我们这个RA呢,我也就不测试了,接下来我再来整一个集群外的ready,我在这来指定工作负载,配我们的red。我们就叫note啊,这是我们的集群外访问。点击下一步,然后呢,集群外访问,我们就不选,不选择下边不生成IP,我们让他得生成服务IP,然后呢,指定工作负载,因为我们是有状态部署的,所以我们选择red还是容器的6379,这个6379这是red的工作端口,我们点击下一步。
09:07
我们再来点击外网访问,外网访问note port,点击创建,这样呢,我们red呢,外网就会有一个端口叫31968,相当我们K8S集群里边任何一台机器的31968就能访到red,当然我们这个呢,测试一下,嗯,我使用Vs code里边我自带的这个装的这些插件,不如弄circle口,我能连上red,好比如我数据库,这我点一个加号,这是连数据库的,来纸上连上red,那red的这个地址。是他。地址是他。单不是HTP把这个呢去掉端口呢不是6379,因为我们外部暴露的集群里边每一个机器的这个端口叫31968,然后我们red呢,也没有啥密码,所以我可以来进行连接。好,我们连接成功啊,连接成功以后呢,我进来看一下,这是我们啊之前的这个red,我来刷一下这个数据有没有啊点进来。
10:10
所以我们这个red呢,这是连接成功的来展开,这个red呢,应该会有16个库,最起码给我们展示出来吧。那说明我们这个插件呢,可能他这个还没写好,我还是刚才呢下载了一个red test top manager,那这个呢,重新来测一下,来连一下我们的这个red,这个red呢,现在是我们随便找集群外的一个IP地址。来写我们的这个IP地址,端口号呢,当然是我们集群在这暴露的端口号,31968 31968name,比如我们就叫fair的,装的这个好,我来点一个OK连上来。好,我们这个red呢,是没有任何问题的,包括我们也可以给里面保存东西set一个K,比如值叫A和B点一个保存,这个数据呢也会被保存里边,包括我们red呢,就算重启它的数据还在,比如我来到工作负载,我怎么测这个时候呢?这是我们的这个red,对吧,我把它副本降为零,这不就没了吗?
11:19
我让他删。然后呢,我再来把它副本数调为一,让他再给我们新创建一个red,好,这个新red又好了,然后我来重新连接测试一下,先断开连接,再重新连上来,我们看之前的数据是不是还在啊,因为我们对做了持久化,所以这一块呢没有任何问题。那red的部署我们就做完了,而且呢,我们在部署的时候,我们没有提前创建red的这个卷,我们在那儿呢,是现场指定,所以呢,他在这一块也可以给我们在这达到这个效果,叫red PVC什么什么。而我们未来推荐就是有状态副本集,我们在创建的时候都不是提前在这儿准备好卷,都是呢现场指定。
12:09
而且这种呢,应该是一个强制做法,因为如果我是在这一指定副本级的话,呃,不是副本级一指定券的话,如果我再来起一个马SQ,假设我们的马SQL有状态副本级的意思就是我的这个马SQL,如果我启动一份,然后呢,它连这个,如果我启动第二份,那其实它相当于是不是还连这个了,但实际上呢,应该是每一个马S有它自己存数据的地方,每一个马S有自己存数据的地方,剩余的呢,我们这马S之间,我们自己可以给它做数据同步啦,或者分库分表啦都行,就是说每一个马S都应该有自己存数据的地方,我们这个red呢,现在就是这样,如果我们是在创建期间来指定的这个券,就是不是提前做好的,那么最大的优点就来了,给大家看一下。有状态副本及red,我如果给来上三副本点一个立即生效来稍等一下。
13:05
三副本好,他开始来创建啊,他能挨个创建就无法调度,等一会就好了。我们三部门的red准备好以后呢,大家在这一块来看一下咱们的存储管理里边,你就会看到RED0 red1 red2是每一个red都用自己的存储盘,但是马S呢就不行了,比如我们来到我们的马S,我们以前的有关态副本器,如果来两个马S,这两个马S呢,相当于是用的同一块地方,所以我来给大家看一下,在马S的这个存储里边,我们的这个马是不是就没有第二个了,所以相当于多个MYSQL同时操作一个文件存储的地方啊,所以这个不符合我们有状态应用的啊这个思想描述,所以以后我们有状态应用想要部署了,我们推荐在这一块,在这儿创建的时候,一定是我随便写一个啊,一定是呢,在这自己手动来制定,嗯,制定我们这个挂载存储的。
14:09
而不是我们提前在这儿创建好的啊,这个呢,我们就。给大家先演示到这儿,我现在把这些副本呢,全部缩回去,缩到它原来的样子。那有了库SPA呢,调整负数也是一个很快的事情,一个确定,那只保留我们一个这个ready。至此,我们这个red的部署就到这结束了,我们在外边呢,部署的东西也能连得上。
我来说两句