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中的账号登录检查数据是否都在
在这里插入图片描述
账号能正常登录,老的数据都存在,然后手动上传个包试一下没问题就证明迁移成功了

猜你喜欢

转载自blog.csdn.net/Habo_/article/details/131397366
今日推荐