00:00
欢迎大家继续收看上硅谷的Linux云计算视频,大家好,我是王洋老师。那之前的课程中呢,我们已经学习过了很多的一些K8S中的一些组件了,对吧,包括它的一些我们的资源控制器,我们在讲资源控制器的时候,我们讲到了一个叫做step set的这么一个控制器组件,它呢就是专门为我们的有状态服务去建立的。那我现在有一个问题,那这个问题是什么呢?我想描述的是,既然我们是为了有状态服务去建立的,那也就意味它需要有一定的存储能力,对吧?也就是K8群中有一定的存储能力。那为了解决这些问题呢?所以在这节课我们去给大家专门的去讲解,在K8S中到底有哪些存储机制能够被我们所利用。那在我们的K8中呢,它的存储类型呢,分为这么几种,第一个叫con map,第二叫secret,第三个叫,第四个叫persist,简称PV。
01:07
那这几种呢,分别给大家介绍一下,简单的介绍一下第一个map。它的诞生呢,是专门在我们K8S里给我们起到一个存储配置文件的目的。有一些需要加密的一些信息。比如我们的密钥。比如我们的一些用户名、密码的信息在里可以被加密。它是一种加密的方案,BASE64位的加密方案。也就是不是以明文的显示,那他呢,可能更靠谱一点。W,那它呢,就是专门给我们的pod提供一个共享存储卷的这么一个能力。比如我们可以通过NNFS共享啊,可以通过我们的本地磁盘的某个目录去共享啊,都是可以的。最后一个是我们的PV还包含了一个PVC,我们把它放在一起去讲解了,那PV呢叫做持久卷对吧,持久卷那在PV里呢,我们会给大家讲怎么去通过一些其他的一些服务进行我们的持久券的构建,这都是没有问题的。
02:13
四种不同类型。好,那我们就话不多说,我们先带大家去看第一种map,也就是我们之前说过的,专门去存我们的配置文件的这么一种存储方案,对吧,好。那map功能是在我们的1.2版本中去引入的,许多应用程序都会从配置文件、命令行参数环境中去导入我们的配置信息,Con map的IP给我们提供了像容器注入配置信息的机制,Con map也可以利用来保存单个的属性,也可以保存整个配置文件或者接省的二进制对象。好,那。其实在我们的真正的生产环境中呢,我们有一种机制,这种机制呢,比较向往们map,它叫配置文件的注释中心。
03:15
它叫配置文件注册中心,这个东西怎么理解呢?我们想一下,我现在呢,有1000台的ningx。好,有1000台,这1000多的配置文件呢,我们需要有一天我需要进行更改,那我们的操作可能是通过一些我们的自动化脚本,对吧,比如我们的自己写的CL语言,或者是我们的pop或者是on s进行机兴化的修改,把这么多的配置呢,一器给它改掉,这个没有问题。但其实呢,在很多情况下,你会发现,诶,它还分了好几组,比如这是第一组的nu,我们还有第二组,我们还有第三组的,并且每一组的配置文件哎,都不太一样。
04:13
那在这种配置文件的管理中,你会发现非常费劲了。那所以在这种结构下呢,我们会引入一种配置文件注册中心的这么一个概念,现在呢,没有太好的开源方案去解决,基本上都每个公司自己去构建的。好,那在这种情况下,它是怎么样一种构建方式呢?首先所有的一些服务想去正常访问的话,它会向注册中心里配置文件的注册中心里去索要他的配置信息。那配置文件的中心呢?会匹配它的一些对应信息,比如主机名或者是IP地址的范围进行分配它的配置文件。那当然,不同的一些集群会损害到不同的一些配置文件。
05:02
那包括以后我们要去修改这几些的一些配置文件,我们只需要在注册中心之中进行更新,那这样的话就会触发每一个进程自己的修改以及运行。这样的话,我们的更改起来,包括我们的保存以及维护起来更简单,更方便,这就是我们的配置中心的一个概念。更倾向于把配置文件保存成一个文件,分发到下方。好,那在K8S里呢,它的map也是这样去想的,首先我们可以创建一个map。比如这保存的是一个N的com配置文件,它会保存一个我们的存储的这么一个对象,对吧?呼叫资源,那这个资源呢,可以在后期我们创建pod的时候告诉他,诶你创建这个po的时候要去引入这么一个con map,要去引入它的信息,那这样的话,这个n com文件就会被注入到我们的pod文件中。
06:03
并且不管多少个pod过来以后,他都能去申请同一个恩吉斯菲格。并且,如果我后期对恩尼斯卡菲克进行修改,以后这里的内容也会发生变化。当然我们的nux服务暂时还不支持去直接重载文件,你需要进行的重启重载对吧?让它热更新才可以,这里需要注意一下,这跟我们的con mark没有关系,对吧?这主要是ening的这么一个小缺憾吧,那在不久的未来呢,当traffic的我们的traffic的这么一个,呃。工作效率或者并发量能够追上以后,完全可以通过traffic代替去实现这么一个功能,因为这么一个新的web服务器,它是支持我们的文件的热更新的,那所以呢,对于con mapb来说,对于我们的K8S来说还是比较重要的这么一种对象类型,对吧?那我们过来看一下怎么去创建。因为它主要是利用嘛,就没有这么多的原理需要给大家去讲解,那首先对于我们的砍map的创建呢,有好几种方式,有三种方式对吧,第一种就使用我们的目录创建,第二种呢,是使用我们的文件创建,以及使用我们的字面的值去创建。
07:15
好,我们一个一个去看。第一种使用目录创建,我们看一下它的创建方式,在某个目录下,诶有两个文件,有两个文件,第一个文件它的属性有这么多,对吧?好,第二个文件它的属性有这么多,那我们在创建的时候只需要create config map,给con map起个名称,比如叫game-conig,然后杠杠from fair指定的这么一个目录,那这个目录下的所有文件都会被创建出来,并且这里有说了,件的名称就是文件名值就是文件的内容。也就是它存储的值结构呢,依然是一个KV结构,K就是我们的文件名称,键值就是这里的内容需要大家注意一下,好。
08:04
那我们可以根据它的方式,我们去创建一下,对吧。我们去创建一个卡贝map CD的卡贝map中我们去创建一个D好,D某种好,那首先呢,我们先创建第一个文件,我们就跟它一致了,我就不改了,这里就是一个简单的测试,对吧?给大家看下效果,因为没有什么难的嘛,就是一个使用方案而已,好,老师没说,我们这里连值都不改了哈,偷个小懒哈。然后呢,我们就可以直接创建了。好,Di下的文件对吧,推车,那这样的话就已经创建成功了,我们直接库c kr get叫com map,直接CM也可以,那这里你会看到有个叫做game game conig,对吧,Game conig,那我们酷C条。
09:15
我们去get com map,加上我们的game comp,我们可以看一下,好看不到具体的信息,对吧,我们可以加个杠OEM。好,那这里呢,就会有对应的信息了,唯一法数据,哎,这里有个键名对吧,键名是我们的叫什么game。Tale,那这里呢,有一些信息,这些就是我们之前文本里的值,这里也是一样的值类型是砍map,在这里你就可以看到拉的详细信息了,对吧?当然我们也可以通过去看conig map是我们的game conig也可以看得到,没问题吧,建明键职,建明兼职,那这就是我们通过目录保存的这么一种方案,好,我们看下第二种。
10:08
使用文件创建,从单一文件去创建,我们可以看一下它的创建方式,其实没有什么区别,我们把刚才的命令我们再返回看一下,看到了吗?C create map game-2MAP game杠杠from fair杠杠from fair其实这里唯一的区别就是一个指定的是目录,一个指定的是我们的文件的本体。能看明白我的意思吧,好,那栏目也可以去看一下,肯定是没有问题的,对吧,我们指定的是当前的,比如叫game。对吧,回车,那这样的话是不是也会被创建,我们可以get加CM,可以看到这里有个cm game菲杠二,那我们可以看一下game卡菲杠二的一些信息。
11:00
没问题吧,建名键值对吧,文件名,文件内容好,那最后一个是使用我们的字面的值去创建,它使用的是我们的。LA的这么一个lay这么一个方案,对吧?From lettery,也就指定我们的建名,指定我们的兼职建名兼职的这么一种方案,好,那我们过来看一下cooper city啊,Create map指定了一个map的名称,好,那杠杠from LA指定了我们的一个键名,键直是very,又指定了一个。我们的剑民键职是我们的char对吧?好,那我们过来,我们去把它给创建一下,那也就意味着这里的剑民分别是我们的special hall以及我们的special tra对吧?好,那我们可以过来看一下cooper CR,然后呢,Con菲哥mark跟的是我们的SPA菲格对吧?好,建明剑指,建明剑指,这是完全没有问题的,对吧?
我来说两句