00:00
欢迎大家继续收看上硅谷的Linux云计算视频,大家好,我是王阳老师。之前的课程中呢,给大家讲解了我们的config map和我们的。Map呢,主要是做到一个数据。配置文件中心的这么一个作用,对吧?配置中心的这么一个作用,好,对于我们的来说呢,它可以存储一些比较敏感的一些数据,比如我们的用户名密码,比如我们的密钥,比如dock仓库的认证信息,对吧?那这都是在这两种对象里我们可以去做的。那接下来呢,我们需要去给大家演示另一种,也就是我们的wall。到底我们到目前为止,其实还没有对我们的dock,或者是还没有对我们的整个K8S中的一些po做所谓的持久化操作,对吧,依然还没有,那接下来呢,我们就去看一下到底怎样去在我们的K8S的po中去进行持久化操作,那所以呢,要讲到我们第三种的存储对象了,它叫W。
01:10
好。首先呢,这里有些说明对吧?磁盘上的文件的生命周期是短暂的,这就使在容器中运行重要的应用程序会出现一些问题。首先,当容器崩溃时,Cool light会重启它,但是容器中的文件会丢失,容器已干净的状态镜像最初始的状态重新启动。其次,在pod中同时运行多个容器时,这些容器通常需要共享文件。在K8S中,Wall某抽象就很好的解决了这些问题。那从这句话中我们可以看出一些问题。就是第一个。当容器崩溃时,库light会重启它,但容器中的文件会丢失,以干净的状态重新启动。这跟我们在刀里还不太一样。
02:00
如果你在dock里把它的启动命令加上一个restar always的话,当我们的docker内部进程关闭以后,Do会负制去把它给重新引导,重新启动,对吧?那这个启动过程中呢?并不会,并不会以一个干净的状态镜像最初的状态启动,而是保留里面的数据,还记得吗?但是在我们K8S中需要注意一下,一旦他崩溃,他就会以一个最初的状态启动,其实这个概念之前我们也说过了,在哪里说呢?在我们容器的生命周期里给大家提到过,我们想一下,如果你不是以一个最干净的状态去启动的话,那这样的话,阴利的C怎么去执行?是这个意思吧,因时是不是可以帮我们去赋予一些呃,初始化的一些过程,比如新建一些文件啊等等,对吧?好所以所以这里需要注意一下,跟我们的最基本的包还是有区别的,那还有这些需要共享文件。
03:06
在pod中运营多个容器的时候需要共享文件,其实这个共享文件的机制啊。必须要引入我们的券以后,那我们的PE才能去共享券,我们之前在讲一个pod在启动的时候,它会先启动一个PI的这么一个容器,对吧?那这个容器主要负责的目的是共享我们的存,共享我们的网络和共享我们的卷能力。那共享网络呢,我们已经看到过了,那共享券的含义就是今天的券,一旦我们把W挂在这抛以后,那所有的容器内部都可以在固定的位置访问到这个卷。好,需要大家注意一下,那接下来呢,我们看下一个背景,客户单粒中券是有明确的寿命的,与它封装的pod相同,所以JA的生命比pad中所有的容器都长,当这个容器重启时,数据仍得以保存。
04:00
当然,当pad不再存在时,券也不复存在。也许更重要的是,库布支持很多种类型的券,Pad可以使用任意数量的券。那这个还是要给大家画一张图进行解释说明的,因为这个概念很重要很重要。好,我这里呢,就是K8S运行的一个pod。以及外部现在封装的一个卷W,我们现在不需要去管这个W到底是怎样去实现出来的,以及共享过来的,那你会知道这个wall膜会被共享至这个所谓的po。那对于我们的这个炮楼来说呢,内部肯定有是是有很多容器的,对吧。
05:06
比如第一个叫C1,我叫第二个C2。好在泡的创建的时候呢,我们会有一个容器叫做pue。Po会与我们的W进行挂载绑定。这就是最基础的一个我们在包里使用卷的能力,对吧,然后C1和C2它会共享pue的存储卷。这个功能在do里完全可以实现,对吧,共享另一个容器的存储卷。
06:05
好,那同理,当前的pod中的所有的所有的容器都会共享这里P的存储键。那如果想重启的话。这两个会丢失状态,重新创建出来一个新的C以及一个新的CR。所以这里的券我发现并没有发生所谓的变动,那在这种情况下,你说凭什么我会造成所谓的存储的丢失呢?对吧,因为券一直没有动啊。那这也是他的一个实现的原理。大家可以很好的去理解一下这张图,好,那接下来我们继续往后看,如果我们想真正的生成这里的券的话,到底有哪种类型呢?对吧?在这里都给大家列出来了,有很多。As的包括什么,亚马逊的对吧,亚马逊的快存储,亚马逊的文件存储,CP的csi的download ipi的,也就是一个ipi接口,文件下载的ipi接口也是可以的,一个空的目录。
07:11
FC的光纤设备等等等等,在这里有很多我们都可以见得到好,基本上是现在一些常见的方案在这里都有体现。那最重要的呢,可能货架最灵活,比较大的可能就是这个host pass,也就将本机的某个目录给共享过来,那为什么说它的灵活性最大呢?等会给大家去演示说明好。那这里呢,类型有很多,每一种类型呢,它的使用方式都是大同小异的,我们也不可能把所有的券的类型都给大家演示过来,对吧?所以我会挑一些我认为比较重要的卷给大家去讲解。当然像那种CEPH的需要去构建,提前构建C存储集群的话,那就不会带大家去做了。好,那我们先看第一个AD,也就是我们的空目录,对吧?当pad被分配给节点的时候,首先会创建一个空的目录目录卷,并且只要该pod在该节点上运行,该卷就会存在。正如卷的名人所说,它最初是空的。pod中的容器可以读取和写入安布D卷中的文件,相同文件,尽管该卷可以被挂载到每个容器或相同的不同的路径。
08:21
那由于当出于任何原因考虑从节点删除泡泡时,安DR中的数据将被永久删除。好,容器的崩溃不会从节点一处抛的,因此M第二的卷宗的数据在容器崩溃时是安全的。那这个它的含义给大家举个例子。其实跟我们这个券比较像。当我们的。当我们的这个炮的被确定要运行的时候,它会首先去创建出来一个空的目录卷空卷,空卷呢会与随知生成的这一个pic进行绑定,然后再去依次运行出来C1以及CR,这就是空卷的一个创建过程,很好理解对吧?好,我们看mpadr的第一个用法,占存空间,利于用于基于磁盘的合并序列,也就意味着如果我现在有很多个容器。
09:28
他们有一些数据需要在总合合并的话,那我需要有个临时空间去存放这些数据,那MVDR呢就是一个比较好的选择。第二个用作长时间计算崩溃恢复时的检查点。那就像我们之前说的,有一些服务需要去运行,会有一些数据存现存在,那这些数据呢,可能在我们的pod重启的时候会发生重载,那重载的时候到底是以怎样的数据进行恢复呢?那可能这个数据不需要持久化的写入,但是我有些临时数据需要去恢复,那这时候你就完全可以通过mdr的里面的数据进行恢复操作,以及外部容器。
10:10
提供数据时。那保存内容管理器容器提取的文件。也就意味着我们的web容器在运行,运行的时候会需要一些文件存在,那我们可以在初始化镜像的时候,从某个地方去download下载一些文件到我们当前的目录下去运行,那在这个时候呢,我们就可以把这个文件保存至我们的空目录去使用。好,非常简单对吧,这么一种思想,那接下来呢,我们去看一下它的实现方案I PI wson,因为这是运行的一个pod,对吧,给大家演示的,所以这是一个核心组的V1版,好类型是pod,类型名称是test pd,那SPA描述的方式container容器用到的镜像是这么一个镜像,对吧?谷歌的GCGCR的这么一个镜像仓库,好name。
11:03
Test可能也就是给我们的这么一个容器起了一个名称,那底下呢,在与我们的contain评级的这么一个目录下,创建了一个WW的名称叫开启W。那它的底下类型是安DR,那中间的画框里面显示是为空对吧?好,然后在容器上面呢,进行了一个W的挂载,Mount的PA挂载到我们的容器的哪个目录下好,以及是通过哪个W去挂载的,那这样的话就可以去创建一个空的目录去供给给我们的pod去使用。好,那我们过来看下效果。我们去看一下我的。虚拟机。
我来说两句