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...
也就是在有网的情况下
把视频下载到本地
这样没网也可以看了~
如此理解,十分通透!
网友评论