00:00
大家好,欢迎大家继续收看像硅谷的Linux云宣传视频,我是王阳老师。那上节课呢,给大家讲了我们的W的卷对吧,那这样的话,我们可以很好的去给我们的doer内部的一些容器进行一些所谓的数据的保存了。那其实呢,还有一些小问题需要去解决,比如K8S集群是一个非常大的项目,大家也看到了,对吧。在上面的使用者呢,可能是一些。服务部署的一些我们的运维工程师,那还有一些存储工程师,还有一些网络工程师等等,这么多的工程师如果想在一个K8S中进行协同的话,你会发现不太友好,原因是什么呢?如果整个集群的部署完全是由我们的系统工程师去完成的,那他需要先去准备存储,然后再去封装我们的镜像,再去运行pod,再去调用我们的存储,它需要掌握的知识点太多了,对吧?那我们能不能进行分工呢?比如我去把我们的运维工程师分为两类,一类是专门跑业务的,一类是专门跑存储的。
01:08
也就存储,专门由存储工程师去运维,运行维护,那业务工程师呢,专门去进行所谓的服务部署以及服务状态的检测维护即可。那这时候呢,我们的K8S就给我们提供了一个新的对象资源,就叫PV。好,这是一种怎样的含义呢?首先在我们的整个K8S集群中呢,在外部可能会有一些存储的资源,比如是NFS,比如是什么MFS,比如是一些所谓的快存储,叫SCI,好,这些存储能力呢,都是在外部由我们的存储工程师去进行所谓的创建的。那K8S中如果想要去使用他们的话,使用的方式是七零八落的,对吧?它的灌篮方式跟它的灌篮方式跟它的灌篮方式肯定是不一致的,那所以呢,在K8之中呢,他们给我们去提供了一个新的对象资源,叫PV,叫PV叫持久券和system对吧?持久券好,那他呢,先在我们的K8S中去把这个持久券给它串联出来,那这个持久券会对应到我们对应的存储上。
02:25
那也就意味着不同的存储对应到不同的持久卷。那这样的话,我们的应用程序的工程师再去部署某一个pod的时候,直接调用集群内部的这么一个存储卷即可完成我们的存储的使用。也就意味着,我们的。服务的一些运维工程师呢,不需要去管后端到底是怎样去实现的,他只需要知道,诶,我可以调用这个PV的存储即可。那这个呢,就是我们在K8S抽象出来的一个新的概念,叫PV。
03:02
好,其实呢,这个还比较费劲,原因是什么呢?我们还需要去判断这个PV到底它的速度怎么样,它的大小怎么样,它到底满不满足我的请求,你需要自己一个一个去匹配,那假设我现在这里有上万个PV存在,那一个一个对过来一遍以后,你会发现很费时间,对吧?那所以在这里呢,我们又有一个新的概念叫PVC。PVC,我们在创建炮的时候,我们会给它附带一个PVCPVC的请求,那PVC的请求相当于就是去寻找一个合适的PV进行绑定。那比如他要求的我们的速度必须很高,它必须是一个时装类型的。我们的可用性非常高的这么一个PV存储节点,那这个PV的类呢,可能也是一个死状类型的,强壮类型的稳定性非常之高,那它呢,需求也是一个强壮类型的,那这样的话两边是不是就进行匹配了,匹配成功以后呢,这个PVC就会与这个PV进行绑定关系。
04:09
那这样的话,这个炮就会使用到这个PV。也就意味着PVC是一种PV的请求的方案,你只需要写你的需求的点,它会根据集群当前的PV去进行匹配,去寻找一个满足他的需求,并且资源量资源量更小的这么一个节点。那假设它的存储需要十个G,那它的存储是。11个G,它是。20个G,它也是我们的强壮类型,那强壮对于这两个节点来说,都是满足我们的PCVC的要求的,那我的需求是存储十个G,它是11个G,它是20个G,我就会选择一个资源量相对最少的这么一个节点去使用。
05:00
原因是你要满足我的要求,满足了,诶这两个都满足,但是它的资源更小,它的11个G,你20个G有点多了,有点浪费,所以他会选择一个最小的与之匹配,这就是我们的PVC的概念。好,这两个呢,都是在我们K8之中的这么一个对象,需要大家注意一下,那接下来呢,我们接着向下去看。第一个我们的PV的概念对吧,之前我们也给大家去通过图形的形式给大家展现了,我们再看一下它的官方说明,好是由管理员设置的存储,它是集群的一部分,就像节点是集群中的资源一样,PV也是集群中的资源。PV是W之类的一个卷插件,但具有独立与使用PV的pod的生命周期。好,此ipi对象包含存储实现的细节,GNF或特异云供应商的存储系统。他抢白来说就是。
06:01
我们在这里没给大家补充到的一个特点就是PV独立于pod的生命周期之外,也就意味着如果你这里的PV,这里的PV挂载到了我们的某个pod之上。有一天,这个pod被删除了,这个PV依然会被保留。能理解我意思吗?比较类似于我们的券对吧,好。那第二个PVC是用户存储的请求。那它与炮的相似,炮的消耗节点资源,PVC消耗PV,听明白了吗?也就是我们集群中会有一堆的PV,那可以被直接挂载是某个某个po的,也可以被PVC所绑定挂载是某个pod。好,Pod请求的是特定级别的一些资源,比如CPU、内存,声明给请求的特定的大小和访问模式,这是我们对于PVC来说的。举了一些例子对吧,比如是不是可以读啊,或可以写啊,或者是只读多次挂载的模式啊等等,我们到时候会给大家去一一讲解。
07:05
好,那这就是我们的PV和PVC的一个概念,对于PV来说呢,现在还有一个动态PV和静态PV的这么一个分类。那集群管理员创建一些PV,他们带有可供集群用户使用的实际的存储的细节。他们存储于库的I中,可以被消费。也就意味着这些PV是有我们的管理员,比如是我们存储管理员手动去创建的。那里面保存了访问是后端存储的细节,比如怎么去连接的,它的地址是多少等等一些具体的操作,那动态PV呢,就是它可以跟我们的一些跟我们的一些云存储上的这么一些存储,去进行所谓的存储的申请,完成这么一个PV的动态创建。那这个呢,还是怎么说呢,它可能是我们以后的趋势,但暂时来说还是不是那么友好,因为它的实现方案比较费劲,以及价格比较昂贵,还不太成熟,这是我们动态匹配,给大家简单做一下简简介即可,心里有这么一个数就就行了。
08:12
好,那下一个绑定MAS中的监控环路,监测新的PVC,寻找符合匹配的PV,如果有可能的话,并将它们绑定在一起。如果为新的PVC动态调度PV,那则该环路PV绑定是PVC,否则用户会总会得到他们请求所请求的这么一些存储,但是容量可能超出要求的数量。一旦PV和PVC进行绑定以后,那PVC的绑定是排他性的,不管他们是如何绑定的,PVC跟PV绑定都是一一映射的,也就是一个PVC只能绑定是一个PV。能理解我的意思吗?那一旦PV被一个PVC所绑定了,也不可以被其他的PVC所绑定,一一对应。好,那这里还有一个概念,就是我们请求的PV和我们的PVC的请求数量可能是大于的关系,也就PVC它里面要求的存储的数量可能是11个G。
09:08
那PV呢,可能是20个G。能理解我的意思吗?很少情况下会出现刚刚好的这么一个情况,绑定的概念很好理解对吧?好,那持久卷声明的保护。PVC保护的目的是确保pod正在使用的PVC不会从系统中移除,因此如果被移除的话,可能会导致数据丢失,也就意味着PVCPVC当你的PV。被我们的PVC所绑定的候,并且我们的pod有一天被删除的时候,这个PVC依然会存在在我们的系统之中,并且这个PVC依然会给我们的PV进行一个保密关系,主要是为了防止一旦的出现丢失以后PVC被删除,数据上的丢失,这肯定是不太合理的,对吧?好,那所以呢,我们的PVC的保护目的还是比较正常的。
10:05
好,下一个持久画卷的一些类型。PV呢,是以券的插件的形式去实现的,K8S目前支持以下的券的插件类型,那比如GCE的,谷歌的。持久化存储对吧?持久化存储IWS的快存储,亚马逊的啊,那叫什么?呃,微软的文件存储,微软的快存储,光纤设备等等,其实你会发现这里使用的方案其实跟我们的W没有什么区别,对吧?那底下呢,给大家演示了一个PV的创建过程,那我们可以看一下这里演示的方案呢,是我们的NFS的机制,NFS的机制,当然其他的机制呢,也可以去实现,那在这里呢,给大家去演示了一个最常见的rfs的方式,对吧?那我们看一下效果,看一下它的使用方案,首先IP沃son核心组的V1版本类型使用的PV。
11:05
Me名称叫PV0003对吧,好SPA。Capacity。Storage声明,它的券的大小为武器比。Wal mode file system文件类型对吧?啊,System mode叫read ones,这是它的访问策略。read ones呢,就是仅仅。读写,但是只有一个人,也就只有一个人能过来读写,那如果有两个人同时连过来的话是不允许的,这就是他的read ones的含义,那等会给大家讲一些其他的访问模式,好,那下一个persist。Recline policy叫line,这是它的一个所谓的叫做,在这里叫我们的回收策略,那等会大家再给大家去讲,我们先简单听一下好下一个storage class name class name,那这讲的来说就是它的一个存储类的一个名称,什么叫存储类呢?那举个例子。
12:12
在我们的后端存储中呢,可能有很多种实现方案,比如在这里的在哪里,在这里它有NFS实现的,有MFS实现,有实现的,那它的速度呢,可能比较快。它的速度可能比较一般吧,还不能讲快对吧,对于其他几种来说,它的速度可能是一般或者slow比较慢。那他的呢,可能就要快比较快一点,对吧,那他呢可能是更快,那我们就可以做一下分级,比如它是。一类型的存储,我们把它叫做一类存储,那它是我们的二类存储,它是我们的三类存储,那如果再来一些什么所谓的固态级别的,我们可以把它分为四类存储。我们再去PVC。把它绑定为PV以后。
13:02
那PV呢,里面会申明一个一类二类三类的关系,那可以与之对应对吧,那它就是一类,那它呢就是二类,它呢就是三类。那当我们这边的PVC在哪里?好,当我们这里的PVC去进行请求绑定的时候,我们可以去指定它的请求绑定的类,比如它的类就是二类,二类型的资源,那它就会寻找二类型的资源的PV与之绑定。所以这个类的概念是非常重要的,是划分我们的存储情况的这么一个指标,非常重要的指标。好。Mount options一些其他的一些书名对吧?Hard类型n FS serve的服务器状态好,那这个当然也可以不去指定,让他自己去判断,那下面呢,就是NFS服务了,那PA挂载到某个目录下的对吧?哪一个服务器的某个目录下挂载,那这样的话他就会可以把NFS封装成一个PV的00003。
14:03
并且它的存储类是slow类,大小为5GB,那这就是封装一个PV的详细的方案,当然在这里呢,我们还有一些问题没有解决,对吧?比如在这里呢,它的访问控制有哪几种,比如在这里的回收策略有哪几种,比如。在这里的我们的slow或者我们的类到底是一种怎样的含义?那在下面的课程中呢,我会继续向。
我来说两句