暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

TiUP离线镜像源组件管理最佳实践

神州数码云基地 2022-06-16
815




TiDB 

神州数码云基地

在 TiDB 上的尝试、调研与分享

 本期作者 

陈卓敏

后端开发工程师

每天学习一点点

做时间的朋友!

TiDB作为一款金融级可用的数据库,应用在很多金融场景中。但为了保证安全,通常整个集群环境都是离线的。集群部署时都是提前克隆官方镜像源,再进行离线部署。

这样就存在一个问题:不能随时在线从官方仓库中下载和更新最新组件,享受版本更新带来的红利。

之前研究这个问题时,并未发现有相关案例可以进行参考。因此解决后,在测试环境上重现了我的解决过程并记录了操作步骤,在此分享给大家!



 #一个小背景 


最近我碰到了一个变更需求: 需要为离线TiDB集群安装一个PCC组件。


一开始自然而然想到了利用命令tiup install PCC来进行安装,结果提示该组件未被发现:


    The component `PCC` not found (may be deleted from repository); skipped,


    随后,我查看了本地镜像源。发现本地镜像源是克隆的官方v5.0.4版本的镜像源。


    且本地镜像源里面没有发现PCC组件的安装包,即便使用tiup list 命令也未发现有PCC组件可用。


    这说明最初部署集群克隆v5.0.4版本的镜像源的时候,官方还没有在v5.0.4的镜像源中引入PCC组件。在后来版本的迭代过程中才引入的PCC组件。(在v5.4.0版本的测试集群里发现有PCC组件可用)。


    接下来我们在另一台在线环境机器上,从v5.4.0版本的仓库里面尝试定制PCC镜像源。



     #定制PCC组件的 

    临时镜像源 


     执行命令:


      `tiup mirror clone tiup-custom-mirror-v5.4.0 --PCC 1.0.1 --os=linux --arch=amd64`


      这里可以根据自己需要的组件调整命令,例如需要组件diag v0.7.0版本,命令为:


        `tiup mirror clone tiup-custom-mirror-v5.4.0 --diag v0.7.0 --os=linux --arch=amd64`


        下载完成后。

        在名为tiup-custom-mirror-v5.4.0的目录可以找到PCC的安装包。


        我们可以将该目录打包,通过u盘拷贝等方式将该PCC包发送到离线环境中解压,作为我们定制的PCC组件的临时镜像源。



         #合并镜像 


        在这个步骤中,我们详细讲解一下如何将PCC镜像源合并到离线环境本地镜像源中。


         #1 

        将本地镜像源中keys目录

        发送到$HOME/.tiup 目录中


         执行命令:


          `cp -r home/tidb/tidb-community-server-v5.0.4-linux-amd64/keys home/tidb/.tiup/`


          镜像源中keys目录下存放着镜像的私钥,这一步操作是为了将本地镜像源镜像的私钥发送到执行tiup命令的用户下,这一步是后面合并临时镜像源到本地镜像源的必要条件。


          本地镜像源目录可用命令tiup mirror show查看。


           #2 

          执行命令合并pcc镜像到本地镜像


           执行命令:


            `tiup mirror merge home/tidb/tiup-custom-mirror-v5.4.0`


            这里可以看出,步骤并不难,重要的是得细心。不然可能一不留神就放错了位置~





             #安装PCC组件 


             执行命令:


              `tiup install PCC`


              这里我们可以看到PCC组件已安装成功,可以正常使用!


              我们进入到本地镜像源目录,发现PCC的安装包已经在本地镜像源中。



              整套操作流程总结起来:


              就是在线的从高版本的官方镜像源中,将需要的组件制作成临时镜像源。


              再将临时镜像源合并到离线环境的本地镜像源中,实现在离线环境中使用高版本组件的目的。



               Emmmm... 

               也就是在有网的情况下 

               把视频下载到本地

               这样没网也可以看了~ 

               如此理解,十分通透!




              扫描下方二维码,

              加入群聊,关于 TiDB 你想了解的全都有!



               #更多精彩内容 





              文章转载自神州数码云基地,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论