00:00
前面我们测试了使用原生的方式来进行挂载,也就说我在容器里边呢,直接说我的这个路径啊,下来要挂到NFS上,但是呢,这种方式啊,它会产生一些问题,比如举一个例子,第一个我们这个pod呢,现在都挂载到这个位置,每一个位置的这个文件夹我们是不是得自己创建,这是我们第一个问题,第二个问题,如果我的这个pod我确定不要了,我把这个pod删了,它里边我们之前挂载的这个文件夹里边的内容,它会不会跟着删,答案是不会,我们可以给大家确定一下,比如呢,我们这个NPV这里边的内容,这是PWD来看,确实是NFS服务器的,对吧?但是呢,如果我现在把我们部署的这两个portd删了,库CTRLL,呃,我们现在直接delete-F,我以这种方式呢,把我们的这次部署删了,那我们重新来看NFS这个里边呢,内容还在不在我们。
01:00
会发现NPV还在CD到NPV进来,然后呢,它里边的内容也在,不会呢,自动清理,就是如果我们后来啊,系统量大了以后,我们起了成千上百个pod,这些pod真正被我们删除以后,我希望它也能自动清理掉这些没用的内容,然后呢,还有第三个问题,比如举一个例子,我们这两个pod呢,都挂在这个目录,当然还有一些别的pod可能挂在这个B目录,别的pod呢,挂在A目录,但是呢,默认对他们能使用多少的空间没有限制,对吧?比如我的这个pod啊,我的磁盘就50G,就我的这个pod把50G全部是不是就占满,其他人是不是就没法用了,所以呢,我们希望在挂载的时候呢,与此同时,最好能给他比如做一些内容啊,这个容量上的各种限制等等等等,所以出于这方面的考虑,我们来说一下K8S里边的,另外我们这个挂载的两种方案,一个呢是我们说。
02:00
的PV和PVC,当然这是一种啊,它们两个配合来进行使用的,所谓的PV翻译过来叫persistent value,叫持久券,持久券就是我们想要挂载的这个位置的这个内容,举一个例子吧,你就可以把这个NPV这个目录,你就可以叫持久卷,就是呢,我们这个里边呢,将会持久化,保存一些东西,然后呢,接下来还有一个概念叫PVC,叫持久券声明,Persistent,我们的这个volume claim,这个持久券声明指的是什么?所谓的持久券就是真正我们数据要存在哪,我们真正把数据存的这个位置,我就可以叫持久券,但是呢,我以后啊可以是这样做,我呢提前比如准备好这些位置,比如我的这个位置呢,我就给它固定好,只有em m大小,Em MB对吧,这个位置呢,我就说只有1GB,然后呢,这个位置呢,我说就只有20MB。
03:00
我呢相当于有了这个PV以后,我可以给它的整个这个存储券,持久券,我呢给一个给力容量,这是第一个问题,第二个,然后呢,接下来我怎么去使用这些呢?以前啊,我们是直接在这相当于进行绑定,我就直接说我的这个HTML,你就给我远远程连上服务器进行操作就行了,对吧,现在呢,你却可以用另外一种,我们叫成为PVC,这个PVC呢,就像一个申请,比如说以后我们的这个pod呀,想要用多大的空间,请你先给我写一个申请书,这个申请书就是我们说的PVC,如果你这个申请书你给我提交了,我按照你的申请书,你说要申请一兆的空间,那我呢就给你开一兆的实体化存储的这个PV空间,这样呢,相当于一个申请书跟一个实际的空间来进行绑定,那这样的话呢,你哪一次pod删了,你也可以带着这个申请书一起删你。
04:00
申请书只要删了,那我就可以把这个空间也进行回收,这就是我们说的PV与PVC,那我们再来看一个这个动画,来理解一下这个过程,首先PV叫持久券,就是真正存数据的地方,而PVC叫持久券声明,这就相当于我们的场地申请书,对吧?那现在就跟我们以前去大学一样,哪怕我们这个去大学,我们要做一些活动,或者去去做一些什么,我们是不是要申请场地,所以呢,真正的场地是PV,而你提交的那个申请书就是PVC,所以我们现在呢,就应该是这样,我们呢现在有三台机器,这三台机器呢,我可以提前在这三台机器上呢,都准备一些存储空间,比如这个PV01,我呢给它开辟了1G,这个PV02我给他开辟了20MBPV03,我开辟了5G,所以呢,等等等等啊,我在这乱七八糟,我可以开一堆的这个空间。
05:00
然后呢,接下来你想要挂载数据怎么办呢?我们把这一堆我们开过来的空间,我们可以称为叫PV池,这个池呢,我们把这种方式也可以称为静态供应,所谓的静态供应就是我自己啊提前创建好,而不是说你给我提交一个申请书,你要多大,我动态给你创多大,所谓的提前创建我就放在这儿,这就叫静态供应。然后呢,我可以相当于把这些空间啊,我提前规划好,形成一个PV池,持久化存储池,而且呢,每一块空间呢,这个有多大多大我都规定死,然后接下来呢,你这个pod想要挂数据了,比如呢,你这个pod-data目录想挂出来咋办呢?你在这个pod上你写一个申请书,这个申请书呢就叫PVC,比如你这个申请书说哎,我要一个em MB的这个空间,那咋办?我们就在这一堆空间池里边,我找一个合适你用的,当然应该是应该是什么原则呢,你说我。
06:00
就申请一个em MB的,那大家说我应该给他哪一块空间比较合适,给50G吗?肯定不是,对吧,应该给他一个最合适他的,如果有em MB更好,没有就用这个20MB的,对吧,不是造成很大空间浪费,所以呢,最终我们这个申请书呀,会最终假设我需要1G,正好呢有1G,那我就在这一堆里面挑,因为大家会看到这一堆闪烁的,这一堆都是G级别的,那我只要1G的,5G的呢,我就可以不用,所以最终这个PVC就可以绑定为我们这个这个PV就是我们说的持久券,也就是说我的一个申请书一提交,然后呢,他就跟我们的这个券进行了绑定,同样的,你看我的这个pod死了以后,我在别的地方再起一份,因为呢,这个pod啊,在写他的这个申请书,他呢,只需要写一次,这是一个固定的,对吧,你就算再起一次这个申请书呢,当天申请的哪块空间,所以呢,你还能找到你之前。
07:00
空间一样数据不丢,但是呢,我们现在引入了这种机制,叫PVC与PV,先给我打申请,打完以后呢,我再给你看你要用哪片空间,这样还能达到的另外一个好效果就是如果我的这个pod删了,我连带它的PVC我一起删掉的话,这一块的空间内容也可以被回收,这就是我们说的PV与PVC,来我们来实战测试一下,来测试PV与PVC呢,我们可以先来做这么一件事,我先来创建这个PV池,就是我们之前说的,我可以提前啊,都准备上一堆空间,以后呢,我想要什么,写一个申请书,看哪个空间适合你,所以我呢,先在NFS的主节点,我先运行这个命令,我先创建上几个空目录,我在NFS的这个主节点,CD有点点杠,大家看一下,那现在呢,PWDPWD当前目录就是n FS data,我呢运行。
08:00
这个命令LS大家会看到我创建了三个文件夹,010203,对吧,这三个文件夹呢,我创建好了以后,接下来我再做一件事,我叫创建PV,创建PV呢,我在这直接用一个文件创建出来,然后呢,这个文件大家只需要改善一处就是呢,你NFS服务器的IP地址172310.4,然后呢,大家看我们这段压码它是怎么写的,好它呢是这么写的,首先呢,通过压面的语法,三个短横线代表分割一个完整的文档,相当于呢,我们这个压面有三个部分,这是第一部分,相当于我们的第一块,这是第二块,这是第三块,相当于我把这个三个三块我都写到一个文件里边。
09:00
当然每一块呢,你可以单独抽成一个文件去来用也没问题,哎,我们就不做那么麻烦了,好,我现在呢,把三个都写在一起,大家会看到我呢,接下来这个页面主要看这几个资源类型,叫persistent value,我们把它称为叫什么持久化券,就说我们真正存数据的地方,然后呢,我们起了一个名叫PV010M啊,这个名字呢,无所谓,你随便ABCDEFG叫都行,但是呢,我在这做了一件这个事,叫capacity,就是我来限制它的这个容量,容量呢存储有多大,10M相当于我的这个券,告诉K8S,我的这个券我只用十兆的空间,而且呢,读写模式是read write,就是可读可写,而且是多节点,就大家都能一起读写操作,我当然这一块呢,你就不用管这么多了,什么storage class,相当于给它起一个class的名字啊,这一块呢,你就随便写ABCDEFG都行。
10:00
但是呢,下边这几个都对应好,因为我们后边要用好,然后呢,大家就照着我们这个写法呢,往上一粘,只需要呢改一个你的这个NFS服务器的名字,这相当于我创建的第一块空间有10M,它呢相当于是零一文件夹位置,也就是说未来我的零一文件夹位置,那就是第一块空间里边的所有内容,第二块空间我又准备了,对吧?它呢我叫1G对吧,1G哎,叫1G,然后呢,接下来它是零二文件夹的,所以呢未来我准备啊零二文件夹又是一片空间,它呢只能最多占1G,然后呢,接下来还有一个叫零三,我们呢是3G,然后呢它是零三文件夹,所以呢,我现在把这个东西ctrl a ctrl c,我来给大家创建一下CD到我们的这个root目录,PWD当前是在root目录啊,然后呢,我来V,我呢就叫P。
11:00
V点压门,刚才的这个文件内容我直接给这一粘,相当于如果我把这个文件一运行库CTRL了a play-F,我们的PV门回车给大家看一下,这块呢,给我们报了一个错,说你的这个里边有一个非法的值什么,比如021G,哎,这个G啊,它说a lower case,就是我们只能允许这个小写,所以按照要求把这个东西呢,别整大写,整小写,这一块呢,都是小写啊,都是小写,都是小写,都是小写,好然后呢,我们起名的时候,大家不要用那些相当于域名上都不合法的东西,就是这个起名规则,你跟域名能对应就行。VI比如我们的这个PV点加门,呃,我把这个呢全删了,我重新呢来一下粘贴名字都改对,我新来运行一下库CTRL。
12:00
Play-FPV回车好,然后呢这三个重新创建好,而且呢,它说这个东西叫persistent volume create,这个呢已经创建了,所以呢,你也可以看有一个cooper control get,我们呢,我们呢可以获取这种资源,看一下系统里边这种资源有多少走诶我们发现系统里边呢,这种资源有三个,这三个呢正好是我们刚才创建的这三个玩意儿,分别占用10M的容量,1G和3G,所以大家会看到我们的这张图,相当于我呢刚才把这个PV池是不是就创建出来了,我相当于准备了一个10M的1G的3G的,我准备了三块空间,然后呢,这三块空间以后呢,那拿接下来我想要用咋办呀,我想要使用的话呢,接下来我们就可以正来使用,来到我们这,当我们这个PV创。
13:00
建好以后我们就可以创建PVCPVC呢其实就是我们写的申请书,比如一个申请书你该怎么写,其实就是这种写法,资源类型呢叫PVC persistent volume claim,我们叫申请书,申请书的名字随便啊,然后呢,我们想要申请的这篇空间的内容,内容呢就是这篇空间呢,必须是大家都能读能写的,而且呢,我需要一个200MI的,所以比如我创建一个PVC给大家看一下将会是啥效果好,这个呢,我们来重新连一下,刚才中断了一下来VI,我再来写一个PVC点面,我们把我们这个呢粘贴过来,我相当于呢写了一份申请书,所以啊所以啊,申请书这一块大家一定要注意,这有个storage class name n FS这一块呢,不能乱写,你上一次创建的这些空间,它的这个class名叫啥,你这就叫啥,你ABCDEFG都行。
14:00
这就类似于分组一样,对吧,我相当于在这个组下去找一个合适的名称空间啊,不是名称空间找一个合适的啊存储空间,所以呢,我的这个PVC我就把内容拿过来给里面粘粘好了,我呢要申请一个200MI的WQ退出,退出并保存,稍等冒号WQ退出并保存,而当然我们在来找之前给大家看一下,我们来重新图包CTRL有一个叫get PV,就是获取所有的我们这个PV,也就是说持久画卷,持久画卷里边呢,大家会看到我们之前呢,有创建10M的,1G的,3G的,而且呢,他们都是available available呢就是可用,所谓的可用,就是还没人用呢,你也能用,对吧?所以呢,那我接下来我只要写一份申请书,当然我可以直接写一份申请书,Apply-F,你也甭管我要这个空间,谁要的?我呢,把这个申请书写给你。
15:00
所以我把这个申请书呢,我可以apply-F让它应用,这申请书一旦一有以后,我们再来获取PV,大家就会发现,诶PV呢,将来有一个1GI的东西干嘛呢?它状态是不是叫B呀,为什么叫B呀,而且呢,B的是被谁绑定了,你看这叫claim claim是不是叫申请书就是被PVNPVC绑定了,为什么呢?因为我们刚才写了一个申请书名叫NPVC,对吧?而且呢,它为什么绑定的是1G的呀,因为呢,我们这三片空间10M的明显不行,为什么?因为我要用200M,所以呢,10M的不行,3G的太大,所以呢,我们就挑了个1G的,这就绑定好了,对吧?然后呢,甚至于呢,我把这个PVC删了,比如delete-F,只要呢,我的这个申请我不要了,PVC我删了,那删了以后呢,再来看PV,我们再来看PV呢,这一块就叫什么release的对吧,也就是被释放了,然后。
16:00
啊,那我把这个申请书呢,让它再应用一下啊,再应用一下,再来看get疲惫释放了以后呢,大家会看到我再次应用呢,它会重新绑定,也就是说这个释放啊,由于我们的这个状态为没有完全清空,所以这个啊相当于还不能用,所以我们接下来还同样的要申请200M的,那就申请到这了,叫3G了,所以呢,这个大家知道一下就行了,那这就是我们写的申请书对吧,以及这些PV,那我们呢,现在系统里边就有这些PV,以及呢,有一个申请书r get PVC我们的申请书,那这个申请书呢,在这有了,这是我们说PVC与PV的关系,我们可以先理解一下,最终呢,就是这个图以后啊,我们想要哪个空间,我可以先写一个申请书,但这个申请书啊,可以不是我们在这儿自己单独写一个申请书,而应该是pod。
17:00
什么时候要用一块存储空间了,他在写,所以呢申请书真正是这么用的,比如我们来看这个,我呢现在呢又部署一个pod,这个pod的名字呢无所谓,然后呢要部署两份,而且还是用NT4镜像,但是大家注意,我呢还是把HTM2页面挂出去,以前呢我们这个叫Y6名叫HTMMR的挂载,我们在这写的是不是叫NFS,大家确定一下,以前呢,你直接在这写NFS,相当于我的这块内容去操作网络文件系统的这一块,但现在呢,你甭写NFS了,你的这个pod可以写一个东西叫persistent volume PVC啥意思啊?我呢是不是可以写一个申请书,因为申请书呢,我前面已经创建好了,叫NPVC,所以呢,我说我这个pod挂载的内容是这个申请书要用的空间,所以呢,我们刚才申请书啊,这个申请书是不是申请了一片空间,申请完一片空间以后呢,接下来我们。
18:00
把这个pod声明,我的内部的这一块的内容是跟这个申请书的那一块空间绑定的,好了,那我把这一块CTRLC已复制来看一下V,比如呢,我们的DEPLOY02,我们的第二次部署吧,阳面粘贴过来,也就是说我们只需要在这声明一下,我们的这个挂载啊,是使用这个申请书对应的名称空间,不是名称空间,是存储空间就行了啊a play-F,我把这个呢应用一下二好,我们的这个pod呢,就创建好了,酷卡trr get我的这个pod大家看新创建的我们叫这些是不是叫PVC的这些pod正好呢,它容器正在启动,来等一下啊,当然容器启动的过程中,哎,我们怎么每次OK好容器呢,现在已经启动完成,因为我们启动的这两个po。
19:00
它绑定的空间是跟这个申请书一样的PVC,对吧?所以我们这个PVC呢,最终绑定的券,你看我们这个申请空间叫PVC,它绑定的券叫3GI的这个券,所以我们可以看一下整个关系PVC和PV,如果我想要看多种资源,我就get PVC逗号PV回车,所以前边呢这一块打印的是PVC,我们呢有一个申请,申请的名字叫NG4PVC,然后呢,它当前状态绑定,所谓的绑定就是有一个pod用它了,然后呢,它最终呢跟谁绑定,跟我们的这个券进行绑定了,所以呢,我们来看这个券呢,叫PV033GIPV033GI是不是在这呢,对吧?在这呢,然后呢,接下来我们这个券好在这对应的内容在这就有了,这就是啊,这个券呢,你真正要改里边的内容,你是不是改我们零三这个文件夹目录,但是呢,此次的挂载就成功了,这就是我们说。
20:00
啊,K8S里边的PV以及PVC,包括我们来改目录给大家看一下,CD到那n FS data塔这个里边,比如我CD到零三这个目录,零三目录LS这个零三目录呢,我来一口一个随便来写一个吧,叫index.htmr,然后呢,我去确认一下这两个pod呢,去他们的这个pod里边确认一下,重新登录,用我们的这个令牌重新登录我们的这个后台系统,好来在我们新的这个pod里边来确认一下啊,来回退,那这个新的pod我直接点它的执行CD到它的这个目录,CD到user share ns htm mrs,然后呢,看到一个INSHTML,好了,没问题啊,包括呢,这一块还有容量限制,大家可以在下面试,因为我的这个啊,现在挂载到零三。
21:00
看了这个呢,要有3G的数据,所以你可以尝试啊,我在这个pod里边,比如我使用w get命令对吧,我下载一个东西,下载一个大于3G的东西,它存着存着空间超了超了以后呢,哎,就会报错,所以它最多只能用3G的空间,当然还有如果用PV跟PVC更未来更强大的功能,我们现在用的叫什么叫静态供应,所谓的静态供应就是空间呢,提前创建好,对吧,而实际上呢,真正呢,还有一种叫动态供应,动态供应呢,我们不在这儿展开来说,因为后边我们库fair里边会直接搭建好,我们直接来用,但大家知道动态供应是个什么事就行了,什么叫动态供应,就是以前的这个PVC啊,它想要一片空间,它只能在我已有的这个里边挑,对吧,但是呢,有了动态供应,我就可以这样来做,比如我起了一个pod pod里边呢,这个data它也要挂数据,它呢也写了一份申请书,然后呢这个申请。
22:00
猪说他要十兆的数据,比如10M,它呢只要10M的数据,那接下来咋办呢?我们的这个PV啊,将来会自动的在一个地方就创建一个他最爱的10M的空间,比如我们这个叫PV10,然后呢创建一个10M的空间,然后呢自动的绑定上,就说我们不用人工手动的提前把这些池建立好了,所以我们把这个呢称为动态供应,那后来安装库S片整个环境我们也会搭建上整个动态供应系统,大家也知道这么一回事就行。
我来说两句