00:00
好,大家好,我是这个互联网老新,那这一节课呢,我们来学习下一节内容啊,就是如何去编写这个牙M啊,或者说编写的一些注意事项啊,编写牙M的一些注意事项,那我们这个地方呢,首先来说一下什么是标要文件啊,这个文件呢,它是一场,它是一个怎么呀,是一个非标记语言对吧?非标记语言啊,非标记语言它有一个自己的格式,你如果把这个格式去,就是你不不按照它的格式来写的话,是很容易出错的啊,至少我在写的过程中,我都是是用模板来写的啊,很少说我自己手动去写啊,这个呢比较麻烦,那我这里呢,把它的语法式呢给大家说一下啊,它的一个语法格式呢,给大家列一下。来这个第一个啊,就是这个雅苗文件呢,是通过怎么是通过缩进来表示层级关系的,咱们可以打开一个来看一看,对吧,打开一个来看一下啊,它是LSVRM,咱们把这个呃,Correct的in这个来打开一下啊,你可以看到对吧,这个是咱们的L文件,它呢是通过缩进来来去做的,就这个地方是通过缩进的,而且。
01:26
一二对吧啊,第三个也就是空了两个格,空了两个格也就是缩进的话是不支持啥呢?不支持table包缩进的这个地方是不允许使用table键的,它呢只是使用空格来缩进,一般情况下开头都是空两个格,就开头缩进两个格,其他的这些一开始是顶格起的,对吧?只要你想去空格的话,那就是空两个格啊空两个格然后呢,字符后面啊,就是比如说冒号对吧,冒号它的字符冒号是一个字符吧,字符后面是空一个格,就这个地方要空一个格对吧?逗号也是啊,在后面要缩进一个格,然后呢,这里有杠杠啊,就是咱们的这个。
02:12
这个对吧?横杠它表示啥呢?它表示呢,是这个这个啊,是咱们压ma的一个格式,表示一个文件的开始可以写多个资源,可以写多个资源,咱们这边只有一个资源,那就写了这一个对吧?如果还有的话,那就再加三个横杠啊然后呢,如果是井号呢,井号表示注释啊,井号表示注释,你可以随便去写对吧?井号这个地方呢,表示注释啊注释对吧?啊注释大家清楚吧,所以一个雅面文件它的格式呢,就是这么来排的,一个雅面文件的格式就是来这么来排的,那完事之后我们来看看一个K8S应用当中的ML文件大致分为哪几个部分啊,大致分为哪几个部分,首先呢,我们在这个地方呢,给大家说一下啊,一个email文件分为两部分,一个是控制器的部分,一个是控制器定义部分,就是我们需要去给它做一些定义,那这个呢,就是。
03:12
控制器定义的一个部分啊,那另外一个呢,是被控制对象,另外一个是被控制对象,那我们一起来看一看啊来。这个就是被控制对象。我把这个推一下啊。把画的这个图拖一下,那把这里呢上来一点啊好了,这个呢就是控制器的定义,这个呢就是被控制对象控制器的定义是吧?是API version啊,是它的这个版本,然后呢看的,然后呢是这个pec啊,然后后面的话就是它的一个模板了,这个就是被控制对象的和一个模板,你们可以咱们可以从这个地方来看,是不是这个就是它的什么呀,就是它的这个。
04:02
控制器对吧,控制控制器啊,然后呢,这个也是对吧,它的控制器,那被控制对象呢,就是这个模板啊,模板下面就是一个被控制对象好吗?那控制器的定义呢,指的是定义控制器的属性,那被控制对象呢,比如说pod啊pod我们要定义什么容器的属性,我们定义一个破物的属性,那这个地方比如我们定义了一个NG对吧,定义了这样的一个属性,那它呢,就是一个被控制对象。好吧,就是一个被控的对象啊,那咱们目前的话,目前的话咱们的这一些API server啊,API version,它有很多的这个什么,很多的这个版本,那我们来看一看它有哪一些。好了,我们来看一下啊,一般我们使用库包ctl加上一个apir API versions啊Vs is就可以看到当前的VE版本是不是啊VE版本那其他的还有一些别的版本,你可以去看一看,对吧?目前基本的版本啊,API的版本,基本的版本我们都是使用这个,就是我们在这里面对吧,去使用的时候都是使用的top,然后其他的啊,其他的比如说这个。
05:20
选择标签对吧,选择po的模板,我们都可以去使用它来看啊,那比如说我们要看一看咱们的一些资源,看一下咱们的资源库包ctl,然后呢,这个API杠啊resource resource可以看到它的一些资源啊,就是咱们的pod,它相应的一些设置的资源的一些源数据。啊,资源的一些元数据很多是吧?资源的一些元数据啊,这是咱们这个好po的元数据,咱们也可以看到啊行,那完事之后呢,我们来这个说一个面试题啊,面试题呢,就会遇到这个面试题是吧?面试题啊面试题面试题呢会遇到啥呢?会遇到说一般情况下,咱们的这个压ML文件是怎么编写的,压压L文件是怎么编写的,就是面试题会问你,哎,你们公司的这个压ML文件是怎么编写的,那你就可以给他回答了是吧?一个ML你首先要回答什么呢?就类似于怎么编写的,你首先要给他回答这个东西的原理或者定义或者组成对不对,那咱们这个地方的话就是回答组成就行了,压M文件有哪些地方组成的?首先一个压苗文件分为了控制对象和被控制对象对吧,然后呢,每一个对象呢,每一个部分呢,又分为了,又分为了这个API version kind和meet date和secc对吧,这么这么这个部分。
06:46
啊,这么四个部分,然后呢,咱们可以使用,比如说我们在编写的过程中,使用咱们的这个库包ctl啊,库包ctl去查看对吧,去查看它的什么啊plan,查看它的这个具体的编写方法,去查看某一个对象的具体编写方法,当然了,咱们现在嗯,在公司里面也会使用在线的模板去生成这个ML文件在线的一些模板啊,当然你如果在线模板也也不行了,是吧,那你就只能去看官方文档,通过官方文档也有模板,通过官方文档模板去改一改就可以了啊,通过官方文档的模板去改一下就可以了。
07:24
好吧,这个地方是咱们刚刚说的啊。就是咱们说的这个关于咱们的这个文件啊。那现在呢,就有小伙伴有疑问了,对吧,那我们如何如何啊,快速去写这个,呃,这个这个样标文件呢,对吧,我们记又记不住吧,格式又太多,参数又太多,那我们怎么去快速的去书写呢?其实都是有方法的啊,刚刚这个面试题呢,讲完之后,我其实呢已经给大家说了一部分,那现在呢,我们还可以有一种方法,这种方法呢,大家一定要记好啊,有两种方法,第一种方法呢,是我们可以使用库ctl啊correct这个命令去生成一个email文件,如果你没有部署过任何的资源,那我可以用这种方法来生成。那第二个呢,我们可以使用什么呢?可以使用咱们的这个库包ctl啊get get去导出扬标文件,这种呢是指的你已经安装好了一个web项目,所以我们可以用它来导出啊,那我们来看一看,首先我们来。
08:34
看第一种啊,我们来看第一种,我们要使用这个ho ctl correct c啊,Correct deployment去创建一个资源,对吧,创建一个资源web,当然了,我们如果这样的话,我们就直接创建了一个什么命名空间,对吧,Deploy deploy deploy,那我们现在呢,只是想干嘛呢,只是想让它生成,所以这个地方我们加个杠杠啊,Image。
09:01
等于啊,NG这个资源啊,假设啊叫N这个资源那。或者我们叫什么呢?叫web也行,对不对,那我们这里叫NG,比如说NGC1,那我们如果这样的话,我们就生成了,但是我们现在呢,不想让它生成,我们直接用干嘛呢?杠O加一个email,加个email email文件,然后呢,杠杠啊不要让它执行是吧?不让它去运行啊,那就是啊,它加一个RA啊,就是这样的话,我们就是没有让它运行,只是为了生成一个ma文件,回车看到没有,这样的话,是不是生成了一个M文件啊,你可以去修改,你可以去修改啊development,当然了,你看名字是web对吧,Name是web,咱们创建的是web嘛,对吧,它的APP,它的这个name都是web啊,然后呢,这个NGC1是不是我刚才创建的这个NGC1IMAGE等于NG1,对吧,好了,那我如果想修改怎么修改呢?你导入到一个文件里面就行,比如说我在这个地方导入到一个,呃,导入到一个。
10:08
1.m文件啊,导入到这么个文件里面,LS,我们可以看到这个M文件去进行修改。对吧,我们导入到咱们的文件里面,你可以进行修改,其实很多地方都不需要修改了,因为它已经生成了字段都是一样的,对吧?然后这是第一种方法啊,就是我们可以用用这个correct这个命令去生成一个文件,那第二种方法呢,我们使用get啊,我们使用get,使用get干嘛呢?使用get去给它。导出咱们的mal文件啊,使用get就导出咱们的mal文件,那我们来看一看。记得这个方法是适用于什么呢?适用于已经有这个资源的,那我们来现在看看有有哪一些资源,好吧,我们来看看有哪些资源啊,扩个ctl啊,Get这个。比如说我们要看development是吧,或者我们这么来看吧,多写形式是吧,缩写形式啊,就是不写全的了,那deployment,那我就不写ment了,我就写个deploy啊get一下,那会看到有一个web,是不是有一个web,这就是已经创建好的项目,那我们已有了这个创建好的项目之后,我们就可以使用第二种方法来生成,使用get命令库ctl啊ctl去去生成,那怎么生成呢?Get加一个DEP deploy对吧,然后呢,Web加一个杠O,让它生成一个什么呢?生成一个L文件,生成一个压ML文件,就是杠O等于ML文件。
11:43
好吧,然后后面我们去给它export,然后我们让它导入到一个文件里面,导入到咱们的M2,比如说啊m2.l文件好了,那这样的话就导入进去了,我们来看看,那现在的话就有一个有一个M2L文件,那我们可以进去看一下M2M要文件是不是就已经生成了,对吧,就已经生成了这样的一个文件啊,你会看到这里面啊,都是一样的,就是你看到这些参数要比刚才咱们第一次生成的多,是不是啊,为啥呀,因为这个是你根据现有的项目来生成的,你可以去修改啊,你可以再去修改,那刚才第一种方法呢,第一种方法是基于什么呢?是基于correct,就是目前还没有创建,没有部署过资源,我们去生成一个ML文件,两种方法在公司里面我们用的比较多,好吧,这两种方法我们用的比较多啊,所以大家一定要把这种方法记下来,一种是correct,一种是get啊,两种方法。
12:44
好,那这是本节课的内容,咱们讲的是EL的一个操作啊。
我来说两句