关于容器环境运行应用的版本
提示:列表可左右滑动查看。
<h2 style="text-align:center"><span style="text-align: left; font-weight: bold;">关于容器环境运行应用的版本</span></h2><p><br>*** 文档的视频说明,请看下面视频 ***<br><br></p><p class="MsoNormal"><iframe src="/video?url=https://51techud.yykj.com:9002/forum/%E5%85%B3%E4%BA%8E%E5%AE%B9%E5%99%A8%E7%8E%AF%E5%A2%83%E8%BF%90%E8%A1%8C%E5%BA%94%E7%94%A8%E7%9A%84%E7%89%88%E6%9C%AC.mp4" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" onload="setIframeHeight(this)"> </iframe></p><p><br></p><h2><span style="font-size: 11pt;">一、jenkins创建的镜像和容器运行镜像的关系</span><br></h2><div><span style="font-size:11.0pt;mso-bidi-font-size:16.0pt;line-height:173%"><p><img src="https://51techud.yykj.com:9002/forumpic/kg21.png" style="font-size: 14px; max-width: 100%;"><br></p></span></div><p class="MsoNormal"><br></p><p class="MsoNormal">参考上图,上图中,说到的三个镜像版本号,要完全一样,应用运行才正常:<br></p><p><br>1、 创建镜像的版本号(在jenkins的任务脚本配置)<br><br>2、 【SSH Server】运行脚本的版本号(在jenkins的任务脚本配置)<br><br>3、 应用运行,使用的版本号,通过【SSH Server】进行设置<br><br> <br><br><span style="font-weight: bold;">二、容器环境运行应用的镜像版本(默认镜像版本)</span><br>jenkins脚本里,默认版本号,是使用 ${BUILD_NUMBER}<br><br><span style="font-weight: bold;">${BUILD_NUMBER} </span>—— 是jenkins的内置环境变量,在jenkins的环境里可使用<br><br>如里使用这个变量,在下面两个地方,可直接使用,这是最简单的,设置版本号的方法<br><br><br></p><p class="MsoNormal"><img src="https://51techud.yykj.com:9002/forumpic/kg22.png" style="max-width:100%;"><br></p><p class="MsoNormal"><br></p><div><span style="font-size:11.0pt;mso-bidi-font-size:16.0pt;line-height:173%"><p>三、容器环境使用定制化版本<br><br></p></span></div><p class="MsoNormal"><span lang="EN-US" style="mso-no-proof:yes"><img src="https://51techud.yykj.com:9002/forumpic/kg23.png" style="max-width: 100%;"><!--[endif]--></span><span lang="EN-US" style="font-size:11.0pt"><o:p></o:p></span></p><p class="MsoNormal"><br></p><p>这里说一下,自己定制镜像版本号,如上图的定制版本号,是这样形成的:<br><br>${version}-${date_str}-${BUILD_NUMBER}<br><br><br><br>${version} = Hotfix-loginPic-2022-09-23<br><br>${date_str} = 20220923<br><br>${BUILD_NUMBER} = 21<br><br><br><br>三者再使用 - 连接起来,就是<br><br>Hotfix-loginPic-2022-09-23-20220923-21<br><br><br>版本号【 ${version}-${date_str}-${BUILD_NUMBER} 】这个变量,是没法直接给【SSH Server】里调用的,这里,只有 ${BUILD_NUMBER} 是 jenkins 的内置环境变量,是可以给 【SSH Server】使用的,其他的,如${version}-${date_str},对【SSH Server】来说,是不可见的,这就导致,这个定制版本号,没法传给【SSH Server】使用。<br><br><h4><span style="font-weight: bold;">所以,关键点,就是怎么把定制版本号,传给【SSH Server】使用。</span></h4><br>这里使用的方法是,把版本号【 ${version}-${date_str}-${BUILD_NUMBER} 】写到txt文件;再把文件,上传到【SSH Server】,这样 【SSH Server】,就可以通过读这个文件,得到版本号。处理过程如下:<br><br><br>1、 把定制化版本号,写入到 【new_version.txt】这个文件<br><br>echo ${version}-${date_str}-${BUILD_NUMBER} > ${WORKSPACE}/new_version.txt<br><br></p><p class="MsoNormal"><img src="https://51techud.yykj.com:9002/forumpic/kg24.png" style="max-width: 100%;"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal">2、把文件上传到【SSH Server】<br></p><p><br></p><p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt"><o:p> </o:p></span><img src="https://51techud.yykj.com:9002/forumpic/kg25.png" style="max-width: 100%;"></p><p><br></p><p>3、运行镜像的脚本,参数使用上传的文档内容(这个参数就是镜像版本号)<br><br></p><p class="MsoNormal"><img src="https://51techud.yykj.com:9002/forumpic/kg26.png" style="max-width: 100%;"><br></p><p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt"><o:p> </o:p></span></p><p>三个步骤,完整的截图是:<br></p><p><br></p><p class="MsoNormal"><img src="https://51techud.yykj.com:9002/forumpic/kg27.png" style="max-width: 100%;"><br></p><p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt"><o:p> </o:p></span></p><p class="MsoNormal"><br></p><p><h3><span style="font-weight: bold;">四、影响</span></h3><br>说明:k8s的一个特性是,如果新版本运行不成功;则旧版本会一直运行;相当于应用没更新,一直运行旧版本,这时,应用是正常的,服务可正常使用,只是使用的是旧版本。如果做测试,做验证,其实都是对旧版本进行测试,进行验证,这样是不对的。<br><br><br>===== 下面是影响的例子说明 =====<br><br><span style="font-weight: bold;">例子1:<br></span><br><br></p><p class="MsoNormal"><img src="https://51techud.yykj.com:9002/forumpic/kg28.png" style="max-width: 100%;"><br></p><p class="MsoNormal"><br></p><p>大家在 jenkins 构建出来的新镜像;<br>不一定可以运行起来的<br>要到 容器页面查看,上面这个 fgbp-provider-seal 应用<br>2022-10-21,创建的镜像版本是:fgbp-provider-seal_0.10.0-20221020-23<br>但在容器运行容器,使用了 23 这个版本号,这样是运行不起来的。<br>大家注意一下 —— 当新版本运行不起来,旧版本会一直运行,这样,仍然是可以测试的,但测试的是旧版本<br><br>之所以在容器页面这里,运行的是 23 这个版本,而不是 fgbp-provider-seal_0.10.0-20221020-23;是因为,相关人员,在jenkins的配置页,修改了版本号参数,但又没修改,运行使用的版本号参数导致的,因此,运行使用的版本号参数,也要修改,才可以这样构建 <br><br><h3><span style="font-weight: bold;">例子2:</span></h3><br></p><p class="MsoNormal"><span lang="EN-US"><img src="https://51techud.yykj.com:9002/forumpic/kg29.png" style="max-width:100%;"><br><img src="https://51techud.yykj.com:9002/forumpic/kg30.png" style="max-width:100%;"><span style="mso-no-proof:yes"><!--[endif]--></span><br><span style="mso-no-proof:yes"><br><!--[endif]--></span></span></p><p class="MsoNormal"><span lang="EN-US"><img src="https://51techud.yykj.com:9002/forumpic/kg31.png" style="max-width:100%;"><span style="mso-no-proof:yes"><br></span></span></p><p class="MsoNormal"></p><p class="MsoNormal"></p><p class="MsoNormal"><br></p><p><h4><span style="color: rgb(255, 0, 0);">这样的操作,新版本没运行起来(版本号是错的),旧版本就会一直运行;就会<span style="font-weight: bold;">导致,一直在测试,验证旧版本。</span></span></h4><span style="color: rgb(255, 0, 0);"><br></span><h3><span style="color: rgb(255, 0, 0);"><span style="font-weight: bold;"> *** 只有新版本运行正常了,旧版本才会停掉的 ***</span></span></h3></p>
赞(1)
收藏(0)
分享
相关标签:
-
2022年10月28日 11:56
高手face[good]
0
0