Skip to main content

Harbor

1、Harbor的迁移和维护

环境说明: 因为之前的harbor服务挂了, 数据目录在/data/下, 然后数据是存在的,后来部署新环境之后,将数据迁移过去之后,服务启动各种问题,很多情况下就是pg数据库的问题以及权限问题,所以,踩了很多坑,现在把一种最有效的方式介绍下。

1. 迁移老数据(registry+database)

1、导出database 就是迁移数据库,这里迁移方式就是,先使用docker部署一个跟老版本一致的postgresql,然后把数据挂到数据库中 然后就是导出数据

     使用docker部署临时老版本的postgresql
mkdir /postgres #将数据同步到此目录 使用rsync
docker run -d \
--name postgres \
-p 15432:5432 \
-e POSTGRES_PASSWORD=123456.Com \
-v ./postgres:/var/lib/postgresql/data \
postgres:13.10
docker exec -it postgres bash
pg_dumpall -U postgres > /tmp/all.sql
docker cp postgres:/tmp/all.sql .

2、 备份registry 把这个目录下的文件使用rsync迁移到 新版本的对应目录 然后添加权限

   chmod -R 777 v2

2. 重新部署一套新Harbor环境

注意修改harbor.yml中的访问harbor访问的域名或者ip 注意修改端口号,默认为80 注意修改数据持久化目录,要放在哪个位置

3. 迁移pg数据

查看库有多少个 SELECT datname FROM pg_database;

1. 停止除了harbor-db的项目

docker stop harbor-jobservice nginx harbor-core registryctl registry redis harbor-portal harbor-log

2.删除当前新库中生成的harbor数据

登录新部署环境的harbor-db容器 删除现有的库 (除了这三个库postgres template0 template1) ,其余都删掉,因为pg如果要删除指定库,就需要进去其他库,不能进入当前库进行删除,template0 template1这两个库删除有特殊性,此处不需要删除。 参考文档: https://www.modb.pro/db/88534

	psql -U postgres -h 127.0.01 -p 5432 -d postgres
drop database xnotaryserver;
drop database notarysigner
drop database registry

3 将旧库的数据恢复到新库

把从旧库的备份文件迁移到当前新库中
psql -U postgres /tmp/all.sql

4. 重启所有服务

登录验证服务是否是成功的 docker pull docker push

查看日志:

docker logs -f --tail=100 harbor-core
docker logs -f --tail=100 registry
docker logs -f --tail=100 harbor-db

5. 注意事项

harbor如果需要改变配置,访问域名,端口号,账号密码等 可以找安装harbor的目录 /apps/

[root@beijing-physicalsvr04 harbor]# ls -l 
总用量 755616
drwxr-xr-x 3 root root 20 6月 14 20:55 common
-rwxr-xr-x 1 root root 3639 6月 14 18:11 common.sh
-rw-r--r-- 1 root root 5977 6月 14 20:56 docker-compose.yml
-rw-r--r-- 1 root root 773689398 2月 20 16:51 harbor.v2.6.4.tar.gz
-rw-r--r-- 1 root root 10669 6月 14 18:09 harbor.yml
-rw-r--r-- 1 root root 10649 2月 20 16:50 harbor.yml.tmpl
-rwxr-xr-x 1 root root 3171 2月 20 16:50 install.sh
-rw-r--r-- 1 root root 11347 2月 20 16:50 LICENSE
-rwxr-xr-x 1 root root 1881 2月 20 16:50 prepare

每次变更配置,都需要首先执行

rm -rf common
./prepare
./install.sh

2、Nexus问题

备份数据迁移到放到/usr/local/nexus3/nexus-data 目录下 chmod -R 777 /usr/local/nexus3/nexus-data

docker rm -f docker-nexus3 || true
docker run --name docker-nexus3 \
-p 8081:8081 \
-v /usr/local/nexus3/nexus-data:/nexus-data \
--restart=always \
-d sonatype/nexus3
  1. 生产报错

解决方式:

然后创建

步骤1

步骤2 版本参考上面: 2.2.9