00:00
那这个应用程序呢,已经创建成功了,那我们可以通过对应的命令,比如说杠O的可以看到它对应的信息,对吧?好,它运行在了NOTE01 noe02noe01,那它的IP地址是10241.15,我们可以访问一下。对吧,已经能够正常访问了,还有一个2.17的,1.14的。2.17都能够正常访问,是完全没有任何问题了,对吧?好,那我们看下面还有哪些操作,比如第一个操作扩容。我们之前已经说过了,对吧,Deploy是有对应的扩容收方案的,好。扩中的方案deployment。你的deploy叫什么名称呢?以及它扩容的最后的节点数为多少,为十个对吧?那我们可以在这里去创建一下ctrla。好,Deployment deployment叫什么?我们的叫ings对吧?好,那杠杠等。
01:05
等于十个回车。好,那我们再过来看一下。Get part。已经有很多了,对吧,我们就不加杠oy了。十个,一个不少。那所以呢,你会发现一旦部署进我们的K8S以后,我们的应用的扩容说,尤其是像这种无状态应用的扩容说,非常非常之简单。可以说一步打倒了,对。吧,一步达成,那这里我们还要看一个问题,就是我们看啊S有变化吗。还是原来的RS,那这里我想给大家讲一个什么东西呢,就是。如果我更新我们的副本数目,更新我们的副本数目。其实他是。没有更新他的模板信息的。也就意味着你的数目的更新并不可能会造成所谓的。
02:03
回退或者回滚。能理解我意思吗?因为你的模板还是这个模板,我们之前给大家说过,如果想做对应的滚动更新以及回滚的话,这里一定会创建出来新的RS,两边RS的交替会达到一个什么所谓的我们的更新的状态。对吧,好。那现在我们用到的这么一个应用程序呢?叫做V1对吧,V1版的,那如果我们想把它更新到VR版,我们可以通过简单的命令叫做set image设置它的镜像对吧?好,Deployment下的这里有个杠,看到了吗?分割符对吧?Deployment下的有个叫做deployment。那他的镜像。容器名,然后它的镜像名称等于多少,那我们可以把它给更新一下。啊。我们接下来去设置一下库啊。
03:01
Image。Ending好。那里面呢,有这个po里面有哪个容器呢?需要更改的是我们的engines的这么一个容器。把它改为我们的,我们原来用到的是这么一个镜像,对吧,叫docker image。我们原来用到的是这么一个镜像V版的。那现在我们去改一下,那我的官方的v Linux的仓库里,那它的。嗯。镜像的名称叫map,版本是VR版推车,那这样的你告诉我们已经在镜像更新成功了,对吧?并且你会发现镜像的修改会触发我们的一个RS的创建,这个RS的副本数目是不是已经变为三个了,对吧?
04:01
已经全部更新到我们的最新版本了,那po CL的pot我们看一下杠。Co10.244.1.49。版本,VR版。这就是我们在development里面的这么一个更新镜像的方式。那如果我们有些新的代码被封装到了一个新的镜像里,我们只需要通过这这么一条简单的命令就可以把我们的。应用程序更新到最新版本。非常简单。当然,如果你的镜像出现问题,或者是你的新版本的一些代码出现问题,你想去恢复到之前的这么一个状态,那这里的。功能呢,我们把它理解为是一个回滚操作,对吧,滚回到之前的状态。那用到的命令就是我们的undo。RO undo。那它默认会回滚到之前的这么一个老旧版本上,我们可以看一下CTR。
05:02
RO。To。的ending deploy。好,这里告诉我已经比如说back了,对吧,已经回问了,好get part,我们看一下又处于一个交替的过程中,对吧?我们可以get一下RS。好,已经变形成功了,对吧,给。O。我们可以过来访问一下,那现在应该就是我们的V1版了。V。对吧,这就是我们的一个回滚操作,当然在滚动更新和回滚的时候,它还有一些东西需要被我们去讲解,那第一个就是我们的更新策略。那development呢?可以保证在升级时只有一定数量的PD是down的,默认情况下,它会确保至少比有期望的pod数量少一个,是个up状态。
06:05
最多一个不可用。第二个就是development呢,同时也可以确保只创建出来超过预期数量的一定的pod,默认的话,它会比最多的期望多出一个up。那在新的版本中,也就是我们现有版本中会出现一个25%,25%的这么一个状态,什么含义呢?如果我们想扩容。他会。不能讲扩容对吧,如果我们去更新到新的版本,新的版本需要注意一下,给大家画一下。PPT我们之前是不是已经创建过一次了?还是在这个基础上继续给大家画吧,还去用它的。比如我们现在的副本数目有四个。
07:04
这里都是老版本的炮的对吧,那如果有一天我更新到这么一个新版本的时候。我们会先创建25%的pad,也就是1/4的新pod,那这个pod可能就是我们新版本的。那然后呢,再去。删除一个。也就删除25%。再创建一个25%的。再删除我们老旧版本的25%。也就是删除一个新念一个,三除一个,新年一个,三除一个新年一个,那当然我们这里正好是四个对吧,那在我们的新版本中呢。或者在我们的其他的一些副本数比较高的版本中,它删除的一次性可不就。可不就只一个了,能理解我意思吗?25%的这么一个默认阀值,当这个阀值呢,也可以去通过我们的资源控制清单里面描述去修改。
08:02
一个滚动更新的过程,需要大家注意一下。这个呢,有一个东西需要给大家讲解一下,就是。假如你创建了一个,有五个。N1.7.9的这么一个ette的deploy。但是当还只有三个。恩,版本为1.7.9的。被创建出来了,你开始更新,还有五个的1.9.1版本,也就是原来我运营了一个旧版本的。他的副本数目是。可能有十个。我现在。只运行出来三个了。结果我更新了,我们把镜像更新成一个新版本的了。那在这种情况下,Development呢,会立即杀掉之前创建的三个。并开始去创建我们的新版本。这个概念大家能理解吧?现在你让我创建三个,创建十个出来,我现在正在创建三个旧版本的,我接下来要继续创建的。
09:05
结果你告诉我,我现在不用这个镜像了,这都是V1的,对吧,我不用这个镜像了,我们现在要改用VR了,我会直接把这三个全部杀死,立马开始创建VR了,并不会等第一个十个都创建完了以后,对吧?都创建十个出来以后再去把它杀死,不会立马更新,需要大家注意一下这么一个概念。那并且还有一些其他的命令需要给大家解释一下,比如第一个。我们的studio可以查看我们当前的更新状态。哭C。Rot。加这个好。看的是我们的deploy的,Ning的。这里是不是告诉我回滚已经成功了,对吧?设置回滚已经成功了,好,那如果你想看一下我们的历史版本的话,这里有个history对吧,跟上我们的可以。
10:09
去查看,看到了吗。改了这么好几次了,对吧,那现在处于我们的二三版本,但是后面有个描述,描述的更改了阀值,对吧,这里没有显示。我们之前给大家讲过一个叫做rock的这么一个。参数在这里对吧。呃,在这里rock card这么一个参数,如果我们在创建的时候加了rock card,这里就会显示出来,那如果我们创建没有加card,这里就会显示为,那我们可以把这个步骤给它删掉,我们重来一次,看一下delete。杠杠。好。那Co c up-F。加一个我们的参数哈,杠杠一个cut。
11:01
好,然后我们现在去设置一下镜像sit image deployment,就是把我们刚才的过程再走一遍,对吧?Deployment我们设置为我们的,呃。V3版吧。V3版22064的仓库下的有个叫ma版本,是我们的V3。回车。好,没有指定我们的镜像名称对吧,我们的镜像啊容器名称,容器名称是N等于好,那酷哥CTR我可以在这里看一下它的状态,比如叫做。呃。RA studiOS好看里。在这里我们可以看到三个新的副本,能有两个已经更新了,对吧。然后呢,一个旧的更新的最新版本了,然后两三个副本有两个已经更新完成,直到最后的这么一个更新完成。好,那这个呢,已经把我们的整一个更新流程都已经给大家显示出来了,对吧。
12:05
很好理解,好,那我们库C啊,刚才我们是想看的是一个我们的history对吧。看一下。死了呀。好,我们直接去调历志名,你们看一下history,对吧,我们已经看到这里已经有阀值了,对吧?但是这个阀值记录的其实没有大家想象中的这么美观,对吧?比如我们去更新了一个镜像,结果它记录的是这种信息,所以呢,还是那句话。最好最好去,每一步都记录在你的工作手册中。对吧?这里的记录没有大家想象中的这么友好,那可能随着版本的更新,它的记录会越来越人性化,但暂时情况下大家可以看到记录还不是那么美观,对吧,好。那接下来我们可以继续往后看。其实我们在更新的时候,也是可以通过我们的指定版本去回馈到不同版本的,比如我们现在用的是我们的V3版的镜像,对吧,我们再把它改到我们的VR版镜像,那这样就会保留为多个副本更新成功了,对吧?我们再看下历史记录,现在有三种了,三个不同的版本。
13:15
那如果我现在回退的话,我们通过我们的工作手册,你可以知道这是V1版,这是V3版,这是VR版。如果我现在想回到V1版的时候。怎么办?你要先回滚。然后呢,你如果再回滚的话,是不是又回来了。因为他更新的是上一次的版本。那如果我想回到唯一版怎么办?我们需要加一条命令,叫做杠杠。对。等于第几个版本即可,我们可以过来看一下。酷C条。然后呢?
14:00
下的ending deployment。啊。我们的版本呢,是我们的一版本飞车这里。告诉我开始回滚了,对吧,我们可以看一下我们的当前的状态。这里告诉已经回滚成功了,挺快的对吧,库cdl get。O white。我们去访问一下它的IP,我们看一下C分享我们的IP地址。这个是退出的吧。就是退出了对吧。我们去访问一下他的C,好。V1吧,没问题吧。六张应该行了吧,唯一没问题吧,好,从这里可以看出来,我们的回滚是肯定能够指定版本去生效的,那当然我们在滚动更新的时候还可以去暂停。通过我们的命令就是PE。好,那这个呢,是我们的这么一个。
15:00
状态值。你还可以通过我们的。上一个叫更新的状态返回的这么一个返回值叫退出码,对吧,是否为零去判断是否成功了。那刚才我们其实我们已经看到他的回归是成功的。然后呢,我们现在去。到了问零对吧,代表肯定是成功的,这个的含义就是便于大家再去写一些管理脚本的时候,可以去调用这么一个退出值,退出码需要大家注意一下,好。那还有就是我们的清理的这么一个策略。我们可以通过了,所以was in history对吧?来指定到底要保留多少个我们的历史版本。那默认情况下会保留所有的历史版本,如果设置为零以后,那deploy就不能回退了,因为没有保存历史版本,对吧?我们之前也说过,它的回滚包括滚动更新都是以RS的创建为基础的,如果你已经没有老旧的RS的版本的这么一个模板了,它是回滚不了的,这里很好理解,对吧?那并且我们可以通过我们这里的命令可以看到,对吧?如果我们加上一个RA history的话,这里会发现有这么三个。
16:17
那条。Gate r,你会发现这里也只有三个。没问题吧,好。那这个呢,就是我们的一个deployment的一个讲解加is的一个讲解了,对吧,包括我们的滚动更新的方式啊等等。好,那这节课呢,我们就先讲到这里,大家好好的把这些实验都给做一遍,非常重要,对吧,好。下节课再见。
我来说两句