Docker部署的Nexus迁移至K8S

1.环境介绍

1.1 nexus版本

nexus版本为 3.28.1

docker pull sonatype/nexus3:3.28.1

1.2 kubernetes环境

这里的kubernetes集群采用的是阿里云的ACK容器服务,存储使用的是阿里云的NAS作为存储设备,采用PersistentVolumeClaim(存储声明)关联StorageClass(存储类),动态生成PersistentVolume(存储卷)来作为整个集群的数据持久化方案

1.3 数据迁移

1.找到docker挂载出来的nexus数据存放路径

这里是容器内nexus数据存放目录,如果没有将该目录挂载到docker宿主机目录的话需要将这一个目录整个备份出去,可以使用以下指令将docker容器内文件或目录同步到宿主机
docker cp <container_name>:/opt/sonatype/sonatype-work/nexus3 /nexus-data-bak

/opt/sonatype/sonatype-work/nexus3

在这里插入图片描述

2.压缩整个nexus数据目录便于迁移,数据量较大时可开启后台运行压缩命令
压缩大文件时建议使用 tar+ pigz 命令来进行压缩会降低压缩周期
也可以使用filezilla sftp桌面工具,将源服务器的数据目录下载到本机,再从本机上传到目标服务器

在这里插入图片描述

## blobs/ 代表要压缩的目录
## /temp-nexus/nexus_blobs_bak/nexus-blods-bak.tar.gz 代表要将压缩后的文件存放在那个路径以及压缩后的文件名
nohup tar -cvf - blobs/ |pigz > /temp-nexus/nexus_blobs_bak/nexus-blods-bak.tar.gz

1.4 数据恢复

1.找一台Linux服务器挂载K8S中关联的NAS卷

挂载地址及挂载命令可以去到阿里云NAS控制台查看
mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport xxxxx.cn-shanghai.nas.aliyuncs.com:/k8s/k8s-pod-pvc-xxxxx-xxx-xxxx-xxxxx-xxxxxxxx/nexus-data /temp_nexus/

2.将k8s部署的nexus pod副本数伸缩为0,并且去到nas中清空nexus数据目录
在这里插入图片描述

3.将压缩后的文件copy到k8s部署的nexus挂载的nas卷相应路径中解压
数据量大时可选择后台运行解压命令以免会话窗口断开,解压进程中断
4.解压后的目录层级如下
在这里插入图片描述
5.设置nexus目录权限(必要不然启动的时候会报错)

chown -hR 200 ./nexus-data/

6.给pod开启特权容器
在这里插入图片描述
7.启动k8s中部署的nexus pod
在这里插入图片描述
8.检查数据及账号权限
观察日志以及pod状态完全running后我们打开nexus访问地址,使用老nexus中的账号登录检查数据是否都在
在这里插入图片描述
账号能正常登录,老的数据都存在,然后手动上传个包试一下没问题就证明迁移成功了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不爱吃肉@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值