rc的一级升级和快速回滚13
刚才创建了一个rc的资源,rc副本可以批量起多个pod,还能保证pod的高可用,
接下来我们讲解一下rc的滚动升级,再滚动升级之前我们先来看一下我们的rc副本起的pod是什么版本?每个pod的ip地址都能看见,
都能看见每个pod的ip地址,再把它的错误输出定向到空,然后管道只看头几行,只看头3行,
接下来再弄一个rc的配置文件,把我当前的这个k8s_rc.yaml拷贝成k8s_rc2.yaml,拷贝完之后接下来有些地方需要改一改,
这里面的所有myweb都替换成myweb2,
最底下的镜像版本改成1.15,这个镜像压缩包在资料包里面有,待会儿上传一下,注意,两个rc的名字不能相同,所以这个rc的名字我们改成nginx2
这个配置文件准备好之后,对比一下刚才都改了些什么,vimdiff k8s_rc.yaml k8s_rc2.yaml
是把所有的myweb标签都改了,镜像版本也改了,rc的名字也不能相同,
在k8s_rc2.yaml配置文件里面用到了一个镜像叫nginx:1.15
现在还没有1.15这个镜像,所以我们上传一下,随便找一个node节点,传一下,将docker_nginx1.15.tar.gz这个包直接拖拽到node2节点10.0.0.13节点上,就100多M,rz上去也行,这个速度有点慢,如果用wget的话速度是最快的,
接下来这个镜像怎么传?
注意它load进来的这个标签,写的是nginx:latest版本,在当时的时候还是最新的,现在已经不是最新的,
接下来给它打标签,
如果你把这个标签上传上去了,在打一个标签在推一下就行了,
推到仓库
推上来之后镜像也准备好了,那么接下来我们来实现滚动升级,
看清楚比你会操作更重要,滚动升级用到的命令是这样的,在这里我们准备好两个配置文件了,vimdiff对比我们也看过了,接下来我要把我的nginx1.13版本升级成nginx1.15版本,
升级的时候我是希望一会是一个,一会是一个,用的是kubectl rolling-update ,你要把哪个rc升级,nginx,升级成什么样,-f 指定新的配置文件就行了,我们这个新的配置文件是k8s_rc2.yaml,接下来多长时间升级一次,- -周期,- -update-period一周期,每隔多长时间升级一次,你要不指定这个时间,默认是1分钟升级一次,我们10s秒时间升级一次,接下来它就开始升级了,升级命令如下
kubectl rolling-update nginx -f k8s_rc2.yaml - -update-period=10s
他会先创建一个rc副本叫做nginx2,会把nginx2的副本的数量从0调到5,把nginx的rc副本的数量从5调到0,接下来它就起一个关一个,如下图所示
我们在开一个窗口,看它pod起的数量,
只要它存活了10s,就开始干掉,
又干掉一个,pod就处于terminating结束状态
又把它干掉,最终全部由nginx升级到nginx2,
这边也会显示它的一个,升级成功,update succeeded.deleting nginx update升级完成,再把rc副本nginx删除掉,告诉你nginx的rc副本全都滚动升级到nginx2,
那么升级完了,再像之前一样,看一下它pod的ip地址,之前有一批新的pod,我们也像之前curl一下,这个时候还有172.16.84.3这个地址?
之前版本号是1.13,现在是1.15,这个就是滚动升级。
大家看到了滚动的过程是10s秒一个
刚才我们是升级,把升级反过来就是回滚,所以升级和回滚这两个配置文件都得留着,现在没有nginx的rc副本了,只有rc副本叫做nginx2,升级到指定配置文件 -f 接k8s_rc.yaml,既然是回滚需要10s秒回滚一个?改成1s秒滚一个,但是这个参数必须加,不加的话默认一分钟,滚的更慢了,
它是容器起来,再过1s秒,
删掉一个,再起一个,中间时间非常短,这就回滚了,
把资源反过来就是回滚,
记得回滚回来,后面用的是nginx。
标签:回滚,配置文件,13,升级,nginx,rc,pod From: https://www.cnblogs.com/ypyyds/p/16840015.html